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