grep命令使用

目录

极简用法

参数含义

应用举例

更多用法


极简用法

grep pattern filename
cat filename | grep pattern

匹配出包含pattern字符串的相应行,pattern上也可以加双引号。

参数含义

参数 参数含义 补充说明
-b 给出匹配字符串的在该行的字符偏移量 与-o合用
-c 给出匹配的行行数 不是匹配出的字符串数目
-e 多个pattern匹配时 每个pattern前面加一个-e  
-l 列出匹配的文件名  
-o 仅仅显示匹配的字符串  
-n 显示匹配行的行号  
-v 显示出未匹配字符串的行  
-R 对目录的文件进行递归查找 与-r作用相同
-E pattern使用正则表达式 或者直接使用egrep
-Z 匹配出的文件以\0字节分隔 与-l联合使用
-L 列出不匹配的文件名 与-l作用相反
-A 列出匹配行的后若干行  
-B 列出匹配行的前若干行  
-C 列出匹配行的前后若干行  

应用举例

$ cat source.txt
GNU is not linux.
Linux is fun.
Bash is art.

$ grep "linux" source.txt
GNU is not linux.

$ grep -n "linux" source.txt
1:GNU is not linux.

$ grep -v "linux" source.txt
Linux is fun.
Bash is art.

$ grep -o "linux" source.txt
linux

 

更多用法

一次匹配多个文件

grep pattern filename1 filename2 ... filenameN

grep -o 只匹配出pattern字符串

$ echo This is a test line. | grep -o line
line

在当前目录及其子目录下寻找含有pattern的文件,输出的行包含了行号和所在文件

grep pattern . -R -n

找出含有特定pattern的文件予以删除,其中小写 -l 指定输出的是文件名,大写 Z 指定以 \0 字节分隔输出的多个文件名,xargs的-0参数以\0字节来分割出文件名

grep pattern . -R -lZ | xargs -0 rm

grep -c 输出匹配的行数(不是匹配的次数,一行文本多处匹配,只算作一次)

grep -E 此时pattern可以使用正则表达式来表示(相当于 egrep )

grep -v 进行反转,输出不匹配的行

grep -b -o 其中 -b 的作用是得出匹配到的pattern在本行中的偏移,需要跟 -o 一起使用,否则就整行而言偏移为0

grep -n 输出带行号

grep --color 匹配的单词带默认设置的颜色

猜你喜欢

转载自blog.csdn.net/u010248374/article/details/44178073
今日推荐