[Linux]编写shell正则表达式处理

1、grep命令

grep global search regular expression(RE) and print out the line,用于查找文件里符合条件的字符串。

egrep是grep的拓展,支持更多元字符,可通过-E 使用egrep功能

格式:grep [参数] [模式] [文件]

参数:

-E                                                       开启扩展egrep

-i                                                         忽略大小写

-v                                                        取反

-n                                                       显示行号

-w                                                      单词匹配
 

正则表达式的使用:

^root                                                  已root开头行

root$                                                 已root结尾

*                                                        0到任意次的字符,例‘root*’匹配root出现0到任意次的行

?                                                       0-1次,例‘?root’匹配root出现0到1次的行

+                                                       1到任意次,例‘+root’匹配root出现1到任意次的行

x{n}                                                   n次,例‘w{5}’匹配连续包含5个w且5个以上的行

x{m,n}                                               m-n次,例‘w{3,9}’匹配包含3到9个w的行

\<XXXX                                           以XXXX字符开始,例‘\<roo’匹配以roo开头行

XXX\>                                              以XXXX字符结束,例‘ash\>’匹配以ash结尾行

\<XXXX\>                                        包含XXXX,例'\<bash\>'匹配包含bash行

'K...s'                                                K开头中间三个字符以s结尾

'K.....'                                                K开头中间包括结尾五个字符

'...s'                                                  开头到中间三个字符s结尾

例:

(1)在/etc/passwd中匹配含有root行

(2)在/etc/passwd 中匹配含有bin的行

grep为贪婪匹配,若不加上- w参数将会匹配到包含bin的字段

(3)匹配字段忽略大小写

(4)对于匹配的字段进行取反匹配

(5)查找/etc/passwd可登陆的用户

(6)截取ifconifg显示的ip

(7)匹配出现0到任意次字符行

(8)匹配出现0到1次字符行

(9)匹配出现1到任意次字符行

(10)匹配w连续重复出现6次包括6次以上字符行

(11)匹配以K开头以s结尾中间包含3个字符的字符行

2、sed命令

stream editor,流编辑器,根据匹配模式程序化处理文本。

sed将从处理的目标文件中行读取加载进临时缓冲区(模式空间)中,处理完一行输出至屏幕,再加载下一行,只至目标文件最后一行。

格式:sed [option] 'command' file                     (command表示处理方式)

            sed [option] -f scriptfile file                      (-f使用以写入文件的处理方式对目标文件处理)

参数:

-n                                                输出模式匹配的行

-f                                                将处理方式写入一个文件内,用–f scriptfile执行文件内的处理方式

-i                                                直接修改原文件内容

-e                                               多条处理方式

-r                                               支持扩展正则表达式

处理方式

p                                           显示

d                                           删除

a                                           添加

c                                           替换

w                                           写入

i                                            插入

=                                           显示行号

s                                          取代

(1)p(显示)处理方式

sed -n '2p' file4

显示第2行

sed -n '1,3p' file4

显示1到3行

sed -n -e '1p' -e '2p' file4

显示第1行和第2行

sed -n '/Third/p' file4

显示包含Third行

sed -n '/^Second/!p' file4

显示不以Second开头的行

(2)d(删除)处理方式

sed '/Line$/d' file4

删除以LIne结尾的行

sed '1,3d' file4

删除1到3行

sed '/Line$/!d' file4

不删除以LIne结尾的行

注:删除空白行为sed '/^$/d' file

(3)a(增加)处理方式

sed '/The/a hi' file4

对存在The的行的下一行添加hi

sed 'a hi' file4

对源文件的每行的下一行添加hi

sed 'a hi\nbye file4'

对源文件的每行的下一行添加hi,hi的下一行添加bye

(4)c(替换)处理方式

sed '/^Third/c www/' file4

将以Third开头的行替换成www

(5)w(写入)处理方式

sed '/Line$/w Linefile' file4

将以Line结尾的行写入到Linefile文件下

sed '1r Linefile' file4

将LInefile文件中内容插入到file4文件的第一行

sed 'r Linefile' file4

将LInefile文件中内容插入到file4文件的末尾

(6)i(插入)处理方式

sed '/^Last/i my' file4

在以Last开头的行的上一行添加my

(7)=(显示行号)

sed '/^Last/ =' file4

显示以Last开头行的行号

(8)s(取代)模式

sed 's/^/my /g' file4

将每行的开头取代为my

sed '1,3s/^/#/g' file4

1到3行的开头取代为#

sed '/^Last/s/^/my /g' file4

以Last开头的行开头取代为my

sed 's/end/kkk &/g' file4

在存在end的行中,在end前取代为kkk

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值