浅析Linux命令之grep

版权声明:原创文章,欢迎转载,转载请注明作者和链接。 https://blog.csdn.net/Mary19920410/article/details/77606514

grepGlobal searchRegularExpression andPrint put the line,全局搜索正则表达式并把行打印出来。一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

1、功能

使用正则表达式搜索文本,并把匹配的行打印出来

2、语法

grep [可选项] [--color=auto] '搜索的字符串' filename...

3、常用可选项

--color=auto:打印输出的时候将匹配的关键词部分加上颜色显示

-n:给输出内容加上行号

-v:反向选择,即打印出没有‘搜索的字符串’内容的那一行

-c:计算找到“搜索的字符串”的次数

-i:不区分大小写

-A:除了显示符合模式的行,并显示该行之后的内容。

-B:除了显示符合模式的行,并显示该行之前的内容。

-C:除了显示符合模式的行,并显示该行之前和之后的内容。具体请看下面的例子。

'要搜索的字符串'为使用正则表达式的模式pattern

常见用法:

grep -i pattern files  #不区分大小写的搜索。默认情况下Linux系统区分大小写。

grep -l pattern files  #只列出匹配的文件名

grep -n pattern files #显示行号

grep -c pattern files #显示匹配的行数

grep pattern1 | pattern2 files  #显示匹配pattern1或pattern2的行

grep pattern1 files | grep pattern2  #显示既匹配pattern1又匹配pattern2的行

4、示例

1)grep --color=auto 'test' d*  #显示所有以d开头的文件中包含test的行,test显示有颜色

2)grep '[A-z]\{5\}' d.txt  #显示所有包含至少5个连续的由字母组成的字符串的行

3)grep -c 'test' d.txt  #输出文档中含有test字符串的行数

4)grep -n 'test' d.txt  #显示所有含有test字符串的行及其行号

5)grep -vn 'test' d.txt  #显示所有不包括test的行及其行号

6)grep -i '^h' d.txt  #忽略匹配样式中的字符大小写,显示所有由h或者H开头的行

7)seq 10 | grep '5' -A 3  #显示匹配某个结果及之后的3行


8)seq 10 | grep '5' -B 3 #显示某个匹配的结果及之前的3行


9)seq 10 | grep '5' -C 3 #显示某个匹配的结果及其前3行和后3行


10)grep 'test' . -r -n  #递归搜索当前目录


猜你喜欢

转载自blog.csdn.net/Mary19920410/article/details/77606514