grep
功能:从文件或者命令输出内容中查找满足条件的数据。
grep命令用于查找内容包含指定的样式的文件,如果发现某个文件的内容符合你所要查找的范本样式,grep命令将会显示含有范本样式的那一行。
如果不指定任何文件名称(或者是归于的文件名为-)则grep命令会从便准输入设备读取数据。
命令的一般格式
grep 参数/选项 文件名
grep的一些常用选项
-E: 开启扩展的正则表达式
-F: 将范本样式看成是单纯的字符串
-n: 在输出包的内容的行的前面,加上该行的行号
-r: 以递归的方式查询该目录下所有子目录中的文件
-c: 只显示文件中包含范本样式的总数
-i: 匹配比较的时候不区分字母的大小写
-b: 在输出的每行前面显示包含范本样式的行在文件中的位置,用字节偏移量来表示
注意:egrep和fgrep与其相似
在/etc/passwd查找包含“wlw”的所有行
grep wlw /etc/passwd
find
功能:在指定的目录中搜索满足查询条件的文件,然后执行指定的操作。
find从左向右分析各个参数,然后搜索指定目录。find会将"_","(",")","!"前面的字符串视为搜索的文件,在这些符号后面的字符串为参数选项。如果没有设置目录,find会直接搜索当前目录;如果没有设置参数选项,find默认使用-print选项。
命令的一般格式:
find 指定目录 表达式
表达式:选项、参数和操作3部分组成,分别由运算符隔开
find的一些常用选项:
-maxdepth level:从指定目录往下搜level层。如果level为0的话,就表示只搜索当前目录
-mindepth level:对于小于level的级别不做任何测试和操作。
-mount:仅仅搜索相同文件系统的子目录
测试时指定的数字参数
+n:表示大于大小为n的文件
-n:表示小于大小为n的文件
n: 表示等于大小为n的文件
-amin n: 查找n分钟以前被访问过的所有文件
-cmin n:查找n分钟以前文件状态被修改过的所有文件
-mmin n:查找n分钟以前文件内容被修改过的所有文件
-atime n: 查找n天以前被访问过的所有文件
-ctime n: 查找n天以前文件状态被修改过的所有文件
-group '用户组名':查找属于指定用户的所有文件
-user '用户名': 查找属于指定用户的所有文件
操作命令含义
-ok 命令名{}/-exec 命令名{}: 对符合条件的文件执行由“命令名”指定的linux命令。-ok它会询问用户是否要执行此命令,而-exec则不询问。
-ls:会列出所有找到的文件
-fprint 文件名1:将所有找到文件的名字存放在“文件名1”文件中。如果该文件不存在的话,它就以此名创建一个新文件。
运算符含义
(表达式): 优先执行该表达式
!(表达式)/-not 表达式: 如果表达式为真,则!表达式/not 表达式为假。
表达式1 表达式2/表达式1 -a 表达式2:
这是“与”关系,就是如果表达式1为假,则不计算表达式2
表达式1 -o 表达式2:
这是“或”关系,就是如果表达式1为真,则不计算表达式2
sort
功能:用于对文本文件的各行进行排序。
将逐行对指定文件中的所有行进行排序,并且将排序结果显示在标准输出上。如果不指定文件名字或者使用-表示文件,排序内容则来自标准输入。
使用的一般格式:
sort 【选项/参数】 【 文件列表】
sort的常用选项:
-b: 忽略每行前面最开始的空格符号
-m: 如果文件列表中的文件已经排好序,就会对这些文件统一进行合并,并不做排序
-r: 逆序排序
-o: 将文件排序输出放到指定的文件中。如果指定的文件不存在,则创建一个新的文件。
-c: 检查文件是否已经按照顺序排序
-f: 排序时候,将小写字母视为大写字母,忽略字母大小写。
-M: 将前面的三个字母按照月份的缩写进行排序
-k: 指定需要排序的列
-t: 指定栏位分隔符号为:
-u: 忽略重复行/忽略相同的行
uniq
功能:用于显示文件中所有不重复的行
用于读取输入文件,并比较相邻的行,去掉重复的行,只留下其中一行。将加工后的结果存储放在输出文件中。
命令的一般格式:
uniq 【选项】 文件
uniq的常用选项:
-c: 显示输出时,在每行的行首加上该行在文件中出现的次数
-d: 只显示重复行
-f: 忽略比较指定的栏位
-s: 忽略比较指定的字符
-u: 仅显示出现一次的行列
-w: 对每行第N 个字符以后的内容不作对照