shell grep命令介绍

 

grep描述

       grep命令是Globally search a Regular Expression and Print的缩写,表示进行全局的正则匹配并进行打印。grep的相关扩展命令包括egrep和fgrep,其中egrep支持更多的正则匹配,fgrep只进行字符的匹配,不支持正则表达是。

grep用法说明

grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

OPTIONS
-n      匹配的行数也展示出来
-A 3    将匹配之后的3行也展示出来
-B 3    将匹配之前的3行业展示出来
-o      仅输出匹配的部分
-v      反向匹配
-f      指定需要匹配的文件

案例说明

原始文件file.txt如下所示

abcdefg
abcdefg
1234567
1234567
only one 
abcdefg1234567
abcdefg1234567
abcdefgh12345678
abcdefgh12345678
abcdefh1234568
abcdefh1234568
aaabbb111222
aaaabbbb11112222

原始文件re_file.txt

abcdef[gh]12345
aaaa

1.匹配指定内容并且打印出行号

grep -n 'abcdefg123' file.txt
6:abcdefg1234567
7:abcdefg1234567

2.将匹配行的前一行和后一行内容都打印出来

grep -A1 -B1 -n 'abcdefg123' file.txt
5-only one
6:abcdefg1234567
7:abcdefg1234567
8-abcdefgh12345678

3.匹配abcdefg123456或者abcdefh123456的行

grep 'abcdef[gh]123456' -n file.txt
6:abcdefg1234567
7:abcdefg1234567
10:abcdefh1234568
11:abcdefh1234568

4.找到a开头,8结尾的行

grep '^a.*8$' -n file.txt
8:abcdefgh12345678
9:abcdefgh12345678
10:abcdefh1234568
11:abcdefh1234568

5.找到a出现3到5次的行

grep 'a\{3,5\}' -n file.txt 或者 egrep 'a{3,5}' -n file.txt
12:aaabbb111222
13:aaaabbbb11112222

6.匹配1111或者aaaa的行

egrep 'aaaa|1111' -n file.txt 或者 grep 'aaaa\|1111' -n file.txt
13:aaaabbbb11112222

7.匹配指定文件中的行

grep -f re_file.txt -n file.txt 
6:abcdefg1234567
7:abcdefg1234567
10:abcdefh1234568
11:abcdefh1234568
13:aaaabbbb11112222

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值