Linux文件系统下
一、文本处理工具命令
grep 命令
grep:可以使用正则表达式搜索文本,并把匹配到的行打印出来,用于过滤或者搜索特定字符。
格式为:grep [options] [pattern] filename
options:(常用参数)
-A 行号 | 除了显示符合样式的哪一行还显示该行后的几行 |
-B 行号 | 除了显示符合样式的哪一行还显示该行前的几行 |
-C 行号 | 除了显示符合样式的哪一行还显示该行前后的几行 |
-i | 搜索时忽略字符大小写 |
-l | 列出文件内容符合指定文本样式的文件名称 |
-n | 列出行号 |
-v | 反向查找 |
-w | 只查找符合全字列的 |
pattern:(常用)
^ | 匹配开头标记 |
$ | 匹配结尾标记 |
. | 匹配任意字符 |
* | 匹配零个或多个字符 |
.* | 匹配任意字符 |
[ ] | 匹配范围内的字符 |
[^] | 不匹配范围内的字符 |
\(..\) | 标记匹配字符 |
\< | 单词的开始 |
\> | 单词的结尾 |
x\{m\} | 重复字符x,m次 |
x\{m,\} | 重复字符x至少m此 |
x\{m,n\} | 重复字符x至少m此不多于n次 |
\w | 匹配文字和数字字符也就是[ A-Za-z0-9] |
\W | 匹配一个或多个非单词字符如点号句号 |
\b | 单词锁定符 如\bgrep\b 只匹配grep |
posix字符
[:alnum:] | 文字数字字符 |
[:alpha:] | 文字字符 |
[:digit:] | 数字字符 |
[:graph:] | 非空字符(非空格,控制字符) |
[:lower:] | 小写字母 |
[:cntrl:] | 控制字符 |
[:print:] | 非空字符(包括空格) |
[:punct:] | 标点符号 |
[:space:] | 所有空白符号(新行,空格,制表符) |
[:upper:] | 大写字符 |
[:xdigit:] | 十六进制数字(0-9,a-f,A-F) |
cut命令
cut:用来截取文本,处理的对象是一行文本。
格式:cut -d ‘分隔符’ -f 显示的列数 filename
-d 自定义分隔符,默认为制表符
-f 与-d一起使用,指定显示哪个区域
使用cut以:做分隔符截取第一,三到五列如下:
sort命令
格式:sort [选项] 文件名
常用参数:
-n 以数值型进行排序默认为字符串排序
-r 反向排序
-u 删除重复行
-t 指定分隔符
-k 指定范围
去重操作使用-u参数
sort合并文件
sort file1 file2 > 目标文件 可以进行多个文件的合并去重等工作
uniq命令
一般与sort命令结合使用,可以统计出现相同行出现的次数。
格式:uniq 参数
uniq去重规则:只可以去重相邻的重复行因此去重前需要先排序。
参数:(常用)
-c 在每行开头显示重复行的次数
-d 所有邻近的重复行只被打印一次
-D 所有邻近的重复行将全部打印
wc命令
常用参数格式:wc -l 统计行数
paste命令
格式:paste 选项 文件
选项:
-d 改用列表的字符代替分隔符
-s 不适用平行输出模式 而是一个文件占用一行
使用sed -n l查看默认分隔符
tr命令
tr命令主要用于删除文件中的控制字符或者进行字符转换。
参数:
-s 删除重复字符只保留一个
-d 删除标记所有的字符
可以使用tr进行大小写替换
格式为:tr [ a-z] [A-Z ]
二、文件搜索命令
which命令
格式为:which 可执行文件名
可以添加参数
-v 显示版本信息
一般用于查找路径
whereis命令
只可以用于程序名的搜索,而且只能搜索二级制文件
参数:
-b | 只查找二进制文件 |
-B | 只在设置的目录下查找二进制文件 |
-f | 不显示文件名前的路径名称 |
-m | 只查找说明文件 |
-M | 只在设置的目录下查找说明文件 |
-s | 只查找原始代码文件 |
-S | 只在设置的目录下查找原始代码文件 |
-u | 查找不包含指定类型的文件 |
locate命令
locat命令用来查找符合条件的文件,他会去保存文档和目录文件的数据库内查找,查找速度比find -name快的多 但是使用之前必须手动先更新数据库updatedb命令更新数据库
find命令
格式:find 路径 选项 操作
-name | 根据名称查找 |
-perm | 根据文件权限查找 |
-prune | 该选项可以排除某些查找目录 |
-user | 根据文件属主查找 |
-group | 根据文件属组查找 |
-mtime | 根据文件创建时间查找 |
-nogroup | 查找无有效属组的文件 |
-nouser | 查找无有效属主的文件 |
-newer file1 !file2 | 超找更新时间比file1新但是比file2旧的文件 |
-type | 根据文件类型查找 |
-size | 根据文件大小查找 |
-mindepth | 从第几级目录开始查找 |
-maxdepth | 最多查找到n级目录 |
操作:
-print 打印输出。默认选项及打印出找到的效果
-exec 对搜索的文件进行特定的操作 格式为:-exec ‘ ’ {}\; 注意{}表示查询结果
逻辑运算符:
-a 与
-o 或
-not| !表示非
grep命令
格式为:grep ‘ ’ filename
文件筛选命令后续会详细讲解