grep   文件过滤分割与合并

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。


选项

-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。

-B  显示关键字的后行数

-C  显示关键字的前后行数

-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。

-i 胡列字符大小写的差别。

-l 列出文件内容符合指定的范本样式的文件名称。

-L 列出文件内容不符合指定的范本样式的文件名称。

-n 在显示符合范本样式的那一列之前,标示出该列的编号。

-q 不显示任何信息。

-R/-r 此参数的效果和指定“-d recurse”参数相同。

-s 不显示错误信息。

-v 反转查找。

-w 只显示全字符合的列。

 -x 只显示全列符合的列。

-y 此参数效果跟“-i”相同。

-o 只输出文件中匹配到的部分。


常用实例

  1. 查找颜色显示
    grep --color "match_pattern" file_name    # 或者--color=auto

  2. 查找忽略大小写查找
    echo "hello world" | grep -i "HELLO"

  3. 多级目录中对文本进行递归并显示内容
    grep -rn "text" path/                               #查找目录要-r,-n显示行号,一个文件可能会显示多行

  4. 多级目录中对文本进行递归并显示文件名
    grep -rl "text" path/

  5. 查找关键字后的2行, After
    grep -A 2 kim a.txt

  6. 查找关键字前2行, Before
    grep -B 2 kim a.txt

  7. 查找关键字前后2行
    grep -C 2 kim a.txt

  8. 扩展查找字符串 
    grep -E 'kim|root' /etc/passwd

  9. 反转查找
    grep -v kim a.txt