linux正则表达式sed,Linux正则表达式 sed

相比于grep,sed可以替换内容并输出到屏幕上。

sed [选项] '动作' filename

选项

-n : 将经过sed命令处理过的行输出到屏幕

-e : 允许对输入数据应用多条sed命令

-i : 用sed的修改结果直接修改所读取的文件

......

动作

d : 删除

p : 打印

s : 字串替换(本行)

g : 本行全局替换

......

例:

打印/etc/passwd文件的第3行

$sed -n '3p' /etc/passwd

打印2到4行

$sed -n '2,4p' /etc/passwd

打印所有行

$sed -n '1,$p' /etc/passwd

#test文件内容如下

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:root:/bin:/usr/sbin/nologin

打印包含root的行

$sed -n '/root/p' test

root:x:0:0:root:/root:/bin/bash

bin:x:2:2:root:/bin:/usr/sbin/nologin

注意在命令中“/”为分隔符。

加上 -e 命令可以实现多个行为

$sed -e '/bash/p' -e '/sbin/p' -n test

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:root:/bin:/usr/sbin/nologin

删除某行并或者多行

$sed '2d' test

root:x:0:0:root:/root:/bin/bash

bin:x:2:2:root:/bin:/usr/sbin/nologin

#==========================

$sed '/root/d' test #删除包含root的行

替换字符或者字符串

#s为替换的动作,g为本行全局替换,若没有g则替换本行的第一个。

$sed '1s/root/iam/g' test

iam:x:0:0:iam:/iam:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:root:/bin:/usr/sbin/nologin

#将第一行所有的root替换成iam。

#sed 's/root/iam/g' test

#文件中所有root都替换成iam

替换的格式为: sed ‘s/旧字串/新字串/g filename

“/”为分隔符,也可以使用“#”、“@”等特殊字符。

#删除文档中所有的root

$sed 's/root//g' test

:x:0:0::/:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2::/bin:/usr/sbin/nologin

#只要将新字串的位置设为空即可。

动作 a(行后追加) ,c(行替换),i(行前追加)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值