经常使用选项
grep -v 去除指定的字符串
grep -E 字符串中使用正则表达,好比grep -E "aaa|bbb",则筛选出aaa或bbb,egrep可达到一样效果
grep -o 每一个匹配项一行显示
grep -l 只列出包含指定选项的文件名(lmn的l,不是1234的1)
grep -An 列出符合条件的行及后n行
grep -Bn 列出符合条件的行及前n行
grep -Cn 列出符合条件的行及前n行和后n行
示例:
查看a.txt文件中不含有"hello"的行 grep -v "hello" a.txt
查看a.txt文件中不含有"hello"和"hi"的行 grep -Ev "hello|hi" a.txt 或者egrep -v "hello|hi"
查看a.txt文件中以hello开头的行,grep -E "^hello" a.txt 或egrep "^hello" a.txt
统计a.txt文件中含有"hello"的行数 grep "hello" a.txt|wc -l
统计a.txt文件中含有"hello"的个数 grep -o "hello" | wc -l
过滤出a.txt文件中含有"hello"的行及含有"hello"行的后3行 grep -A3 "hello" a.txt
过滤出a.txt文件中含有"hello"的行及含有"hello"行的前3行 grep -B3 "hello" a.txt
过滤出a.txt文件中含有"hello"的行及含有"hello"行的先后各3行 grep -C3 "hello" a.txt
过滤出abcd目录及其子目录下全部含有"hello"的文件 grep -r -l "hello" abcd