linux中的grep使用技巧


一、grep命令

定义:grep命令用于查找文件中的特定模式,并输出包含搜索模式的所有结果,用于快速搜索匹配模式的简单工具

1.各个选项

grep -o时,命令行只输出匹配的文本
grep -v时,命令行只输出没有匹配的文本行
grep -R -r时,匹配目录下的所有文件
grep -f和-v时,一般用于对比两个文件,输出两个文件相同行和不同行
grep -c时,用于计算某个字符串出现的次数
grep -i时,忽略大小写
grep -n时,输出行号
grep -w时候,被匹配的文本只能是指定的单词,而不能是单词中的某一部分
grep -A 10 'xxx'时,取该出现的字符串后十行数据(after)
grep -B 10 'xxx'时,取该出现的字符串前十行数据(before)
grep -C 10 'xxx'时,取取该出现的字符串前后十行数据(context)


2.原始文件

[root@anlysis data]# cat study 
andy china sum 55590
andy canada sum 5590
andy america sum 55590
andy japan sum 55590
andy keor sum 55590

3.实例操作

1、grep -o时,命令行只输出匹配的文本
[root@anlysis data]# grep -o 'andy' study 
andy
andy
andy
andy
andy

2、grep -v时,命令行只输出没有匹配的文本行
[root@anlysis data]# grep -v 'china' study 
andy canada sum 5590
andy america sum 55590
andy japan sum 55590
andy keor sum 55590

3、grep -R -r时,匹配目录下的所有文件(这里复制了一份一样的文件,所以是两行)
[root@anlysis data]# grep -R 'china' /data/data/
/data/data/study:andy china sum 55590
/data/data/twostudy:andy china sum 55590

4、grep -c时,用于计算某个字符串出现的次数
[root@anlysis data]# grep -c 'andy' study 

5、grep -i时,忽略大小写
[root@anlysis data]# grep -i 'andy' twostudy 
ANDY china sum 55590
andy canada sum 5590
andy america sum 55590
andy japan sum 55590
andy keor sum 55590

6、grep -n时,输出行号
[root@anlysis data]# grep -n 'andy' study 
1:andy china sum 55590
2:andy canada sum 5590
3:andy america sum 55590
4:andy japan sum 55590
5:andy keor sum 55590

7、grep -w时候,被匹配的文本只能是指定的单词,而不能是单词中的某一部分(可以看到一定要符合一模一样的才会打印)
[root@anlysis data]# grep  'and' study 
andy china sum 55590
andy canada sum 5590
andy america sum 55590
andy japan sum 55590
andy keor sum 55590
[root@anlysis data]# grep -w 'andy' study 
andy china sum 55590
andy canada sum 5590
andy america sum 55590
andy japan sum 55590
andy keor sum 55590
[root@anlysis data]# grep -w 'and' study 
[root@anlysis data]# 

8、grep -A 2 'xxx'时,取该出现的字符串前2行数据(after)
[root@anlysis data]# grep -A 2 'canada' study 
andy canada sum 5590
andy america sum 55590
andy japan sum 55590

9、grep -B 2 'xxx'时,取该出现的字符串前2行数据(before)
[root@anlysis data]# grep -B 2 'japan' study 
andy canada sum 5590
andy america sum 55590
andy japan sum 55590

10、grep -C 2 'xxx'时,取取该出现的字符串前后2行数据(context)
[root@anlysis data]# grep -C 1 'japan' study 
andy america sum 55590
andy japan sum 55590
andy keor sum 55590



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值