linux 下Regular Expression

正则表达式:Regular Expression,REGEXP
元字符:
.:表示任意单个字符
[]: 匹配指定范围内的任意单个字符
[^]: 匹配指定范围外的任单个字符
字符集合: [:digit:], [:lower:],[:upper:],[:punct:] [:alpha:] [:space:],[:alnum:]

字符个数:(贪婪模式)
*:匹配其前面的字符任意次
a, b, ab, aab, acb, adb, amnb
a*b b ab aab
a.*b
.*:任意长度的任意字符

\?: 匹配其前面的字符1次或0次
a?b
\{m,n\}:匹配其前的字符至少m次,自多n次
\{1,\} 至少一次
\{0,3\} 最多三次

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

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

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

He love his lover.
She like her liker
HW love his liker
she like her lover

grep '\(1..e\).*\1'

/etc/inittab
grep'\([0-9]\).*\1$'

 

grep 'b..h$'
grep '[[:space:]][[:digit:]]$'
grep "root\>" 或"root\b"

 

 


REGEXP: REGULAR EXPRESSION
Pattern:

正则表达式:
Basic REGEXP:基本
Extended REGEXP:扩展

基本正则表达式:
.:
[]:
[^]:

次数匹配:
*:任意次
\?:0次或1次
\{n,m\}:至少n次,至多m次

锚定:
^:
$:
^$:
\<, \b:
\>, \b
\(\): 分组 \1, \2, \3

grep: 使用基本正则表达式定义的模式来过滤文本的命令;
-i 忽略大小写
-v:
-o:只显示被模式匹配到字符串
--color
-E: 使用扩展正则表达式
-A: 某一行被正则表达式匹配到了,同时显示下面的行 after
-B:before
-C:context

grep --color -A 2 "^ core id" /proc/cpuinfo

 

扩展正则表达式:
字符匹配:
.
[]
[^]

次数匹配
*:
?:相同,其前字符0次或1次
+:匹配其前面的字符至少一次=之前的/{0,1/}
{m,n}

位置锚定
^
$
\<
\>

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

或者
|:or

grep --color -E '(C|c)at' test.txt
'^[[:space:]]+' 以至少一个空白字符开头的行


grep -E = egrep

显示所有以数值结尾且文件名中不包含空白的文件

ls *[^[:space:]]*[0-9]$

找出/boot/grub/grub.conf文件中1-255之间的数字
\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\> 必须作为单个单词出现

ip地址
\.
ifconfig | egrep -o '(\<([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])\>'


ipv4
5类:A B C D E
A:1-127
B:128-191
C:192-223

ifconfig | egrep '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-1][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>'


grep, egrep
fgrep: fast grep 不支持正则表达式

转载于:https://www.cnblogs.com/chrisDuan/p/4601896.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值