Linux 三剑客 - grep
作用
在文件或标准输入中,通过正则表达式查找对应的内容
语法格式
grep的常用选项参数
| 参数选项 | 描述 | 
| -G | 默认值 | 
| -F | 相当于使用fgrep,但必须用 -F | 
| -E | 相当于使用egrep,但必须用 -E | 
| -V | 打印 grep 的版本号 | 
-E 的栗子
前提
当 grep 想同时过滤多个条件或操作
错误写法
默认不支持多条件匹配
正确写法
匹配控制选项参数
| 参数选项 | 描述 | 
| -e | PATTERN 来进行匹配操作 | 
| -f | 从文件中取得 PATTERN | 
| -i | 忽略大小写 | 
| -v | 反转匹配,选择没有被匹配到的内容 | 
| -w | 匹配整词,精确地单词,单词的两边必须是非字符符号(即不能是字母数字或下划线) | 
| -x | 仅选择与整行完全匹配的匹配项 | 
| --line-buffered | 有一个文件是动态的,它不断地添加信息到文件的尾部,而你想要输出包含某些信息的行。即持续的grep一个动态的流 | 
-e 的栗子
当你有多个正则表达式想同时匹配时,可以用 -e,一个 -e 接一个正则表达式,它们是或的关系,不是与的关系
-f 的栗子
-i 的栗子
-v 的栗子
-w 的栗子
-x 的栗子
一般输出控制选
| 参数选项 | 描述 | 
| -s | 禁止显示错误信息 | 
| -q | 安静模式,不会有任何输出内容,查找到匹配内容会返回0,未查找到匹配内容就返回非0 | 
| -m num | 匹配 num 次后停止 | 
| -c | 匹配成功数量 | 
| -l | 列出匹配成功结果的文件来源(标准输入或文件名称) | 
| -H | 给每一个匹配结果打印来源(标准输入、文件名) | 
-q
目前没发现有什么用
-m 的栗子
-c 的栗子
-l 的栗子
ls 输出的内容就是标准输入
输出控制参数讲解
| 参数选项 | 描述 | 
| -b | 输出的同时打印字节偏移 | 
| -n | 输出的同时打印行号 | 
| -H | 给每一个匹配结果打印来源(标准输入、文件名) | 
| -h | 输出是不显示来源(默认) | 
| -o | 只显示匹配 PATTERN 的部分 | 
-b 的栗子
-n 的栗子
-H 的栗子
因为结果都来源于 ls 的标准输入,所以显示标准输入,如果是来源于某个文件则会显示文件名
-o 的栗子
上下文线控制选项
| 参数选项 | 描述 | 
| -A num | 匹配到搜索到的行以及该行下面的num行 | 
| -B num | 匹配到搜索到的行以及该行上面的num行 | 
| -C num | 匹配到搜索到的行以及上下各num行 | 
备注
感觉就是为了好看而已
-A 的栗子
-B 的栗子
-C 的栗子
文件和目录选项
| 参数选项 | 描述 | 
| -a | 不忽略二进制的数据 | 
| -d | 当要查找的是目录而非文件时,必须使用这项参数 | 
| -r | 以递归方式读取每个目录下的所有文件; 这相当于-d recurse选项。 | 
-r 的栗子
巨常用的语法
重点
写的正则表达式最好用 '' 包起来,当碰到需要转义符的时候才会生效
查找指定进程
查找指定进程并统计数量
从文件中查找关键字
从文件中查找关键字并输出它的行号
从多个文件中查找关键字
从文件中查找关键字后,再从结果中找到指定关键字
找出文件中的空白行
显示当前目录下面以 .txt 结尾的文件中的所有包含每个字符串至少有4个连续小写字符的字符串的行
 
                    
                

 




















 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号