shell grep命令
Grep用法
grep [匹配条件] [处理文件] 可以多个文件,空格隔开
Grep参数
命令行举例
//tt.txt文件内容
php
php java python golang wangteng shandong asp net php http java
sdfdsfphp java
sdfds PHHPHhphphhpHPHP
sdagfrathuheqrughfbjavsjbvjadbjfbajvzvbzbvhaergewfb
shandobg dezhou shandobg
shandong dezhou hebei qingyun cangzhou beijing tianjin
shandong tianjin shanxi hunan
-i 忽略字母大小写
grep -i php tt.txt
php java python golang wangteng shandong asp net php http java
sdfdsfphp java
sdfds PHHPHhphphhpHPHP
-v 条件取反,显示不匹配的行
grep -v php tt.txt
sdagfrathuheqrughfbjavsjbvjadbjfbajvzvbzbvhaergewfb
shandobg dezhou shandobg
shandong dezhou hebei qingyun cangzhou beijing tianjin
shandong tianjin shanxi hunan
-c 统计匹配行数,不显示行内容
grep -c php tt.txt
3
-w 匹配整个词
grep -w php tt.txt
php java python golang wangteng shandong asp net php http java
-x 匹配整行
grep -x php tt.txt
php
-l 只列出匹配的文件名,不显示具体匹配行内容
grep -l php ./* ./tt.txt
-n 显示匹配结果所在的行号
grep -n php tt.txt
1:php 2:php java python golang wangteng shandong asp net php http java 3:sdfdsfphp java 4:sdfds PHHPHhphphhpHPHP
-E 支持扩展正则表达式
grep -E 'p' tt.txt php php java python golang wangteng shandong asp net php http java sdfdsfphp java sdfds PHHPHhphphhpHPHP
-F 不支持正则表达式,按照字符串字面意思进行匹配
grep -F 'PH' tt.txt sdfds PHHPHhphphhpHPHP
-r 递归搜索
grep -r php
其他案例
//其他案例 grep -v "str" file //在file文件中过滤掉字符串'str'所在的行 grep -E "2017:22:5[0-9]" file //在file文件中查找时间在2017:22:50~2017:22:59所在的行 grep -E "^[^360]" file //在file文件中查找不包括360的行 grep -E "w*t" file //在file文件中查找包括w和t的行 grep -E "[5-8][6-9][0-3]" //在file文件中查找大于560小于893的行 grep -E "9{2}" file //在file文件中查找包含两个9的行 grep -E "9{2,}" file //查找大于两个9的行 grep -E "^w" file //查找文件中以w开头的行 grep -E "^[^w]" file //查找文件中不是以w开头的行