Linux grep工具

grep 工具

gerp是一种功能强大的文本搜素工具,它能使用正则表达式搜素文本,并把匹配的行打印出来,它的使用权限是所有用户。


  1. 语法参数
  • -n:显示匹配行及行号。
  • -v:显示不包含匹配文本的所有行,表示反向查找。
  • -c:只输出匹配行的计数。
  • -i:表示不区分大小写。
  • -h:查询多文件时不显示文件名。
  • -l:查询多文件时只输出包含匹配字符的文件名。
  • -s:不显示不存在或无匹配文本的错误信息。
  • –color=auto :可以将找到的关键词部分加上颜色的显示。
  1. 案例
  • 查找包含“red”的行
[root@localhost ~]# grep -n  'red' name_port.txt qzj.sh 
name_port.txt:8:redis.1.9uisnzzb51qwtj0q4i524npf0          6379/tcp
  • 查找不包含“red”的行
[root@localhost ~]# grep  -vn  'red' name_port.txt
1:NAMES                                      PORTS
2:nginx.1.6jnva6r45z2nrfm8ctw0xwev3          80/tcp
3:localproxy-zs.1.dyaj8a3mryhro6mua4upciy5j  8081/tcp
4:myshopservice.1.84vpo43uvztdhy7o693jbt7kl  8081/tcp
5:myshopcust.1.3zg47ojds95rayf27z376cf2m     8081/tcp
6:zookeeper.1.be3e3zlz1yj3s5vdib5vn2gkh      2181/tcp,  2888/tcp,
7:smgM001.1.jrc45ze7myt8e7jfswxpt8fso        8081/tcp
9:memcached.1.tvpjqgjrjinq08e0zpr94amo8      11211/tcp
10:localproxy.1.o4uerjr0koy6zhe988ghld7bq
  • 查找“21”前面不是“4”的字符串
[root@localhost ~]# grep  -n  '[^4]21' name_port.txt
6:zookeeper.1.be3e3zlz1yj3s5vdib5vn2gkh      2181/tcp,  2888/tcp,
9:memcached.1.tvpjqgjrjinq08e0zpr94amo8      11211/tcp
68:memcached.1.p021nqighds9wm2zi3rjcbj46
72:memcached.1.t3bl6oyobdh21coykxxecaekh
97:localproxy.1.fa9lwl9munlxcohpytmm621hm
139:4211/dockerd   :::11211
143:4211/dockerd   :::2181
  • 查找“tv”前面不是小写字母、大写字母
[root@localhost ~]# # “tv”前面不是小写字母
[root@localhost ~]# grep  -n  '[^a-z]tv' name_port.txt
9:memcached.1.tvpjqgjrjinq08e0zpr94amo8      11211/tcp
[root@localhost ~]# 
[root@localhost ~]# “tv”前面不是大写字母
[root@localhost ~]# grep  -n  '[^A-Z]tv' name_port.txt
9:memcached.1.tvpjqgjrjinq08e0zpr94amo8      11211/tcp
79:memcached.1.yj8a9autvknbancsarsg0nab4
82:localproxy.1.fdwgtrstv6knn5vrwqott2p5u
85:localproxy.1.mlrk65hrmtk4go9dpvtvm4xik
  • 查找“lo”开头的行
[root@localhost ~]# grep  -n  '^lo' name_port.txt
3:localproxy-zs.1.dyaj8a3mryhro6mua4upciy5j  8081/tcp
10:localproxy.1.o4uerjr0koy6zhe988ghld7bq
12:localproxy.1.0uunohjbwdj5ivy3immvb01ud
15:localproxy.1.xjr2xusu3tbizlvpjpg679tiv
16:localproxy.1.lkti33z8myijzxhhrbvjmaoa3
  • [^]匹配未包含的一个任意字符。查询不以字母开头的字符串
[root@localhost ~]# grep  -n  '^[^a-zA-Z]' name_port.txt
132:4147/sshd      0.0.0.0:10022
133:4513/master    127.0.0.1:25
134:4207/java      127.0.0.1:8006
135:4147/sshd      :::10022
136:4211/dockerd   :::2377
137:4211/dockerd   :::7946
138:4207/java      :::8010
139:4211/dockerd   :::11211
140:4207/java      :::8082
141:4211/dockerd   :::8086
142:4513/master    ::1:25
143:4211/dockerd   :::2181
144:0.0.0.0:68
145:127.0.0.1:323
146:0.0.0.0:4789
147::::7946
148:::1:323
  • 查找以某个字符结尾的行
[root@localhost ~]# grep  -n  'fng$' name_port.txt
128:localproxy.1.xecjhvjbgplnzltf8tkn1qfng
  • “.”匹配除\r\n外的任意一个字符。查询l与k之间包含两个字符的行
[root@localhost ~]# grep  -n  'l..k' name_port.txt
18:memcached.1.5tsx2skv0epnxffcgnygnl5yk
65:localproxy.1.vtj00fshxld7kvkd9co5qqtn7
103:localproxy.1.1jaqrr97vndnl1mk4dpkutk11
112:localproxy.1.iogiftzf3lbjka888xshxlp96
114:localproxy.1.gxhllqmk13voamjt2qbpw0u7l
  • 查询包含连续e字母的行
  • “*”表示的是重复零个或多个前面的单字符
[root@localhost ~]# grep  -n  'eee*' name_port.txt
6:zookeeper.1.be3e3zlz1yj3s5vdib5vn2gkh      2181/tcp,  2888/tcp,
  • 查询以r开头以d结尾中间至少包含一个e的行
[root@localhost ~]# grep -n 'ree*d' name_port.txt
8:redis.1.9uisnzzb51qwtj0q4i524npf0          6379/tcp
  • 查询以h开头l结尾,中间的字符可有可无的行
[root@localhost ~]# grep -n 'h.*l' name_port.txt
4:myshopservice.1.84vpo43uvztdhy7o693jbt7kl  8081/tcp
10:localproxy.1.o4uerjr0koy6zhe988ghld7bq
13:memcached.1.qcdxlj8pimha8zsd9awdkbsq9
14:memcached.1.lt3drfbolg592lt6caz6cipwi
18:memcached.1.5tsx2skv0epnxffcgnygnl5yk
20:memcached.1.jb00ksw4ie90zp7le6836am1u
21:memcached.1.wsc1x3bxloq1iyxi54fhn8324
  • {n}匹配确定的n次
  • 查询包含两个2的行
[root@localhost ~]# grep -n '2\{2\}' name_port.txt
69:localproxy.1.v3e91irok4bciat3kzw22gp63
132:4147/sshd      0.0.0.0:10022
135:4147/sshd      :::10022
[root@localhost ~]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炎方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值