grep, egrep, fgrep - print lines matching a pattern

grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。

若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

语法:

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

 

参数:

  • -v 表示排除后面接的内容
    • grep -v oldboy test.txt 表示排除test.txt文件中的oldboy字符串
  • --color=auto 给输出的内容或目录或文件,自动添加对应颜色
    • grep --color=auto 3306 /etc/services
  • -n 对匹配的内容打印行号
    • grep -n . nginx.conf # 对nginx.conf里的配置匹配上的字符打印行号,如果要将空行打印上行号, grep -n ".*" nginx.conf
  • -E 同时匹配多个字符串
    • 命令效果和 egrep 效果等价
    • grep -E '3306|1521' /etc/services
    • egrep '3306|1521' /etc/services
  • -i 或--ignore-case  不区分大小写
  • -o 或--only-matching  不显示整行,只显示匹配的内容
  • -w 或 --word-regexp   只显示全字符和的列;按单词搜索,相当于\b(单词边界)。
  • -B 除了显示匹配的一行之外,并显示该行之前的num行
    • grep 5 -B 1 test.txt   # 筛选第5行和第五行的前1行
  • -A 除了显示匹配的一行之外,并显示该行之后的num行
    • grep 5 -A 2 test.txt  # 筛选第5行和第五行的后两行
  • -C 除了显示匹配的一行之外,并显示该行之前后各num行
    • grep 5 -C 2 test.txt   # 筛选第5行和前后两行,共5行

 

posted on 2019-11-07 21:25  Zoe233  阅读(193)  评论(0编辑  收藏  举报