Hello World

Linux:grep 命令

【参考文章】:

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

1. 用法

  grep [选项]... PATTERN [FILE]...

2. 参数选项

2.1 正则表达式选择与解释

  -E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
  -F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。
  -G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)
  -P, --perl-regexp PATTERN 是一个 Perl 正则表达式,若需要使用正则表达式,推荐使用 -P 参数


  -e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
  -w, --word-regexp 强制 PATTERN 仅完全匹配字词
  -x, --line-regexp 强制 PATTERN 仅完全匹配一行

  -f, --file=FILE 从 FILE 中取得 PATTERN
  -i, --ignore-case 忽略大小写
  -z, --null-data 一个 0 字节的数据行,但不是空行

  -n : 显示行号

2.2 输出控制

  -r:递归搜索目录文件,使用此参数时必需定搜索的文件目录。默认打印匹配项文件名和匹配项信息,可与其他参数配合使用

  -v:选择不匹配行

  -l:打印包含匹配项的文件名

  -L:打印不包含匹配项的文件名

  -o:只输出匹配到的内容

 

  -C: After,显示匹配的字符串及前N行和后N行   

[root@ps-node-3-3 ~]# docker inspect 41e5cb598161 | grep -C 3 LinkLocalIPv6PrefixLen
            "SandboxID": "",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "",
            "SecondaryIPAddresses": null,

  -B: Befor,显示匹配的字符串及之前的N行

[root@ps-node-3-3 ~]# docker inspect 41e5cb598161 | grep -B 3 LinkLocalIPv6PrefixLen
            "SandboxID": "",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
[root@ps-node-3-3 ~]#

  -A: After,显示匹配的字符串及之后的N行

[root@ps-node-3-3 ~]# docker inspect 41e5cb598161 | grep -A 3 LinkLocalIPv6PrefixLen
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "",
            "SecondaryIPAddresses": null,
[root@ps-node-3-3 ~]# 

2.3 文件控制

2.4. 示例

2.4.1 过滤空白行和注释

grep -Ev "^$|[#;]"  xxx.txt

posted @ 2020-01-06 20:04  小小忧愁米粒大  阅读(366)  评论(0编辑  收藏  举报
瞅啥瞅,好好看书