grep 命令各参数详解带例子

在工作中经常用到grep命令,在此做一下总结。
grep 用于匹配文件中符合条件的行。

用于测试的文本

> cat test.txt
aaaa
bbbbb
cccc
dddd
eeeeeee
ffff

各个选项

-A

-- after-context : 除了打印匹配的行,还要打印匹配行之后的几行内容;

例如: 除了匹配“bb” ,还要知道该行的后三行内容。

> grep -A 3 "bb" test.txt
bbbbb
cccc
dddd
eeeeeee

-a

 --text : 把所有的文件都当作ASCII文件。用人话就是说我们在匹配二进制文件时,如果匹配到内容就会打印"Binary file ...
         matches'', 使用这个选项 就会把匹配的内容打印出来。

-B

--before-context: 与-A相关,是除了打印匹配的行,还要打印匹配行之前的几行内容;

例如 : 除了匹配 “cc”, 还要知道该行的前三行内容。

> cat test.txt
aaaa
bbbbb
cccc

-b

--byte-offset : 打印匹配行之前,打印出匹配行第一个字符的偏移量。注意: 每行最后的回车换行也是算上的。

例如:我们要匹配 “bb”, 并想知道 “bb” 这一行的行首字符的偏移量。

> grep -b "c" test.txt
5:bbbbb

从而我们可以知道,行首字符b 偏移量是 5。

-C

--context:  打印匹配行,前后各打印几行, 如果-C 2 则是等于 -A 2 -B 2;

例如: 我要匹配字符串 “cc” , 除此之外,还要打印前后的2行;

> grep -C 2 "cc" test.txt
aaaa
bbbbb
cccc
dddd
eeeeeee

-c

--count : 打印一共匹配了多少行

-D

--device: 对设备,FIFO,管道等文件设备 进行 read,skip 。特别注意,这样会将fifo的数据读取出来。

例如。我们创建一个fifo文件,并匹配其中的 “aa” ;

# 创建fifo
> mkfifo fifo_test
# 匹配 “aa”
> grep -D read "aa" fifo_test
# 开另一个终端
> cat aa > fifo_test

-d

--directories :针对目录的一些操作 
1. read 将目录当作普通文件
2. recurse:递归遍历,效果等同于-R 和 -r
3.  skip : 忽略目录   

-E

--extended-regexp : 等效于 egrep, 将pattern 当作扩展正则表达式;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值