一篇小文关于grep命令

shell标称四剑客之grep

grep常用参数详解如下:

-a:以文本文件方式搜素

-c:计算找到的符合行的次数

-i:忽略大小写

-n:顺便输出行号

-v:方向选择,即显示不包含匹配文本的所有航

-h:查询多文件时不显示文件名

-l:查询多文件时只输出包含匹配字符的文件名

-s:不显示不存在或无匹配文本的错误信息

-E:允许使用egrep扩展模式匹配。

 

正则表达式详解如下:

* :前一个字符匹配0次或多次

. :匹配除了换行符以外任意一个字符

.* :代表任意字符

^ :匹配行首,即以某个字符开头

$ :匹配行尾,即以某个字符结尾。

\(..\) :标记匹配字符

[ ] :匹配中括号里任意指定字符,但只匹配一个字符。

[ ^ ] :匹配除中括号以外的任意一个字符

\ :转义符,取消特殊含义

\< :瞄定单词的开始

\> :瞄定单词的结束

{n,} : 匹配字符出现大于等于n次

{n,m} :匹配字符至少出现n次,最多出现m次

\w : 匹配文字和数字字符

\W : \w的反置形式,匹配一个或多个非单词字符

\b :单词锁定符

\s :匹配任何空白字符

\d :匹配一个数字字符,等价于[0-9]。

常用grep工具企业演练案例详解如下:test.sh文本如下

[root@node1 dbuser]# grep -c "test" test.sh : test.sh统计test字符的总行数
4

[root@node1 dbuser]# grep -i "TEST" test.sh :test.sh不区分大小写查找TEST所有的行
test
TEST
Test
test3
test6
test5

[root@node1 dbuser]# grep -n "test" test.sh  test.sh打印test的行以及行号
1:test
5:test3
6:test6
7:test5

[root@node1 dbuser]# grep "test[35]" test.sh :test.sh以test字符开头,接3或者5的行
test3
test5
[root@node1 dbuser]# grep "[Mm]ay" test.sh 匹配以M或者m开头,接ay的行
May
may
[root@node1 dbuser]# grep "K...D" test.sh 匹配K,三个任意字符,紧接D的行
000K898D
[root@node1 dbuser]# grep "[A-Z][9]D" test.sh 匹配大写字母,紧跟9D的字符行
A9D
Z9D
[root@node1 dbuser]# grep "T\{2,\}" test.sh 打印字符T连续出现2次以上的行
TT28
TTT38
TTTTTT
TTTT
[root@node1 dbuser]# grep "T\{4,6\}" test.sh 打印字符T连续出现4次及6次的行
TTTTTT
TTTT

[root@node1 dbuser]# grep -n "^$" test.sh 打印空行的所在的行号
17:

[root@node1 dbuser]# grep -vE "# | ^$" test.sh 不匹配文件中的#和空行
test
TEST
Test
10086
test3
test6
test5
May
may
000K898D
A9D
Z9D
TT28
TTT38
TTTTTT
TTTT

#78910
db
config
sql
192.168.10.5
255.255.255.255

[root@node1 dbuser]# grep --color -ra -E "db|config|sql" test.sh 匹配包含db或者config或者sql的文件
db
config
sql


[root@node1 dbuser]# grep --color -E "\<([0-9]{1,3}\.){3}([0-9]{1,3})\>" test.sh test.sh匹配ipv4地址
192.168.10.5
255.255.255.255
66.54.91.88
0.0.0.0
266.333.777.888
266.388.777.999.101

重点解读:--color加特殊色显示

-E 正则匹配

\<瞄定单词的开始

[0-9]任意一个字符,{1,3}出现一次或3次,那就意味,取值是0-999

\.转义 . 使.具备原意 .分隔符 

(){3} 出现三次,即0.0.0.  到999.999.999.

[0-9]任意一个字符,{1,3}出现一次或3次,那就意味,取值是0-999 

即有.分隔的一个ipv4地址

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值