您的位置:首页 > 运维架构 > Shell

Shell文本处理三剑客之grep

2017-01-12 09:54 337 查看
转载自:http://lizhenliang.blog.51cto.com/7876557/1889166

grep

过滤来自一个文件或标准输入匹配模式内容。

除了grep外,还有egrep、fgrep。egrep是grep的扩展,相当于grep -E。fgrep相当于grep -f,用的少。

Usage: grep [OPTION]... PATTERN [FILE]...
支持的正则
描述
-E,--extended-regexp模式是扩展正则表达式(ERE)
-F,--fixed-strings模式是换行分隔固定字符串
-G,--basic-regexp模式是基本正则表达式(BRE)
-P,--perl-regexp模式是Perl正则表达式
-e,--regexp=PATTERN使用模式匹配,可指定多个模式匹配
-f,--file=FILE从文件每一行获取模式
-i,--ignore-case忽略大小写
-w,--word-regexp模式匹配整个单词
-x,--line-regexp模式匹配整行
-v,--invert-match打印不匹配的行
输出控制
描述
-m,--max-count=NUM输出匹配的结果num数
-n,--line-number打印行号
-H,--with-filename打印每个匹配的文件名
-h,--no-filename不输出文件名
-o,--only-matching只打印匹配的内容
-q,--quiet不输出正常信息
-s, --no-messages不输出错误信息
-r,--recursive

--include=FILE_PATTERN

--exclude=FILE_PATTERN

--exclude-from=FILE

--exclude-dir=PATTERN
递归目录。

只搜索匹配的文件。

跳过匹配的文件。

跳过匹配的文件,来自文件模式。

跳过匹配的目录
-c,--count只打印每个文件匹配的行数
内容行控制

描述
-B,--before-context=NUM打印匹配的前几行
-A,--after-context=NUM打印匹配的后几行
-C,--context=NUM打印匹配的前后几行
--color[=WHEN],匹配的字体颜色
博客地址:http://lizhenliang.blog.51cto.com

QQ群:323779636(Shell/Python运维开发群)

示例:

1) 输出b文件中在a文件相同的行

2) 输出b文件中在a文件不同的行

3) 匹配多个模式

4) 去除空格http.conf文件空行或开头#号的行

5) 匹配开头不分大小写的单词

6) 只显示匹配的字符串

7) 输出匹配的前五个结果

8)统计匹配多少行

9) 匹配b字符开头的行

10) 匹配de字符结尾的行并输出匹配的行

11) 递归搜索/etc目录下包含ip的conf后缀文件

12) 排除搜索bak后缀的文件

13) 排除来自file中的文件

14) 匹配41或42的数字

15) 匹配至少2个字符

16) 匹配至少2个字符的单词,最多3个字符的单词

17) 匹配所有IP

18) 打印匹配结果及后3行

19) 打印匹配结果及前3行

20) 打印匹配结果及前后3行

21) 不显示输出

不显示错误输出:

grep支持上一章的基础和扩展正则表达式字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: