grep用法

grep用法

标签(空格分隔): 未分类


grep, egrep, fgrep
grep: 根据模式搜索文本,并将符合模式的文本行显示出来。
Pattern: 文本字符和正则表达式的元字符组合而成匹配条件
grep [options] PATTERN [FILE…]
-i 忽略大小写
–color 匹配到的高亮显示
-v: 显示没有被模式匹配到的行
-o:只显示被模式匹配到的字符串

grep正则表达式:REGular EXPression, REGEXP
元字符:
.: 匹配任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字符集合:
[:digit:]数字字符, [:lower:]小写字母, [:upper:]大写字母,
[:punct:]标点符号, [:space:]空白字符, [:alpha:]所有字母,
[:alnum:]所有数字字母

grep '[[:digit:]]$' /etc/inittab 
grep '[0-9]$' /etc/inittab 

匹配次数(贪婪模式):*
*
*: 匹配其前面的字符任意次
.*: 任意长度的任意字符

?: 匹配其前面的字符1次或0次
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{1,\} 至少一次,多了不限
\{0,3\} 可以没有,最多3次

位置锚定:
^: 锚定行首,此字符后面的任意内容必须出现在行首 grep ‘^a’ test
$: 锚定行尾,此字符前面的任意内容必须出现在行尾 grep ‘b$’ test
^$: 空白行

\<或\b: 锚定词首,其后面的任意字符必须作为单词首部出现

cat /etc/passwd |grep '\<root'

>或\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

cat /etc/passwd |grep 'nologin\>'
\<root\>  root必须为单词

分组:
\(\)
\(ab\)* ab可以出现0次一次任意次
后向引用
\1: 引用第1个左括号以及与之对应的右括号所包括的所有内容
\2:引用第2个左括号以及与之对应的右括号所包括的所有内容
\3:引用第3个左括号以及与之对应的右括号所包括的所有内容

[root@localhost test]# cat test.txt 
He love his lover.
She like his lover.
He like his liker.
She love his liker.
[root@localhost test]# cat test.txt | grep '\(l..e\).*\1'
He love his lover.
He like his liker.

egrep及扩展正则表达式
grep:使用基本正则表达式定义的模式来过滤文本的命令;
-E: 使用扩展正则表达式
-A #: 匹配到的行下面#行也显示
-B #: 匹配到的行上面#行也显示
-C #: 匹配到的行上下#都显示

扩展正则表达式:
次数匹配:
+:前面字符至少一次 = (1,)
{m,n} :扩展正则表达式不用加”\”

位置锚定同上

分组:
():分组
\1, \2, \3, …

或者
|: or
C|cat: C或cat
(C|c)at:Cat 或cat

grep -E = egrep

[root@localhost test]# cat /etc/ssh/ssh_config | grep -E “^[[:space:]]+”
开头至少有一个空白行

[root@localhost test]# ifconfig | egrep -o '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' 
[root@localhost test]#ifconfig | egrep --color '(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){3}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>' 
192.168.30.49
255.255.255.0
192.168.30.255
127.0.0.1
255.0.0.0
192.168.122.1
255.255.255.0
192.168.122.255
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值