正则表达式高级应用

基本sed命令

删除(d)
、[root@localhost ~]# cat 1 -n
     1	sadasdsadjksajkdsa
     2	dasl;dkaskd
     3	dsakdkaskd
     4	sdsa
     5	aa
     6	dsadasd
     7
[root@localhost ~]# sed '/^aa/d' 1
sadasdsadjksajkdsa
dasl;dkaskd
dsakdkaskd
sdsa
dsadasd

[root@localhost ~]#[root@localhost ~]# sed '3d' 1
sadasdsadjksajkdsa
dasl;dkaskd
sdsa
aa
dsadasd
删除空白行
sed "/^$/d"
替换(s)

后可跟参数

n

:1-512之间的一个数字,表示第n次出现的情况进行替换

g

:全局更改

p

:打印模式空间的内容

w

:目标文件

[root@localhost ~]# cat 1
sadasdsadjksajkdsa
dasl;dkaskd
dsakdkaskd
sdsa
aa
dsadasd

[root@localhost ~]# sed 's/^aa/dd/g' 1
sadasdsadjksajkdsa
dasl;dkaskd
dsakdkaskd
sdsa
dd
dsadasd

[root@localhost ~]# sed 's/^aa/dd/;p' 1
sadasdsadjksajkdsa
sadasdsadjksajkdsa
dasl;dkaskd
dasl;dkaskd
dsakdkaskd
dsakdkaskd
sdsa
sdsa
dd
dd
dsadasd
dsadasd
& 替换元字符

表示模式匹配的范围,一般为第一个//之间的内容

[root@localhost ~]# cat 1
wo yao qu dong bei

[root@localhost ~]# sed "s/dong bei/guang dong \& bu hao wan/g" 1
wo yao qu guang dong & bu hao wan

[root@localhost ~]# sed "s/dong bei/guang dong & bu hao wan/g" 1
wo yao qu guang dong dong bei bu hao wan
追加,插入,更换
追加(a)

在原本的下方

[root@localhost ~]# cat 1
wo yao qu dong bei
[root@localhost ~]# sed '/wo/a\ ni qu ma' 1
wo yao qu dong bei
 ni qu ma
插入(i)

在原本的上方

[root@localhost ~]# sed '/wo/i\ ni yao qu na' 1
 ni yao qu na
wo yao qu dong bei
更换©
[root@localhost ~]# sed '/wo/c\ ni ' 1
 ni
列表(l)

小写的l,用于检测是否存在不可见字符

[root@localhost ~]# cat 1
wo
sdasd


.
a

[root@localhost ~]# sed  -n -e "l"  1
wo$
sdasd$
   $
\t\t$
.$
a$
$

转换(y)

根据提供字符的位置来进行替换,一般用于字母大小写的替换

[root@localhost ~]# cat 1
aaa
aaa
aaa

[root@localhost ~]# sed -r '2y/a/b/' 1
aaa
bbb
aaa

打印§
[root@localhost ~]# cat 1
aaa
bbb
aaa

[root@localhost ~]# sed -r 's/a/t/g 1 p' 1
ttt
ttt
bbb
ttt
ttt

打印行号(=)
[root@localhost ~]# cat 1
aaa
bbb
aaa

[root@localhost ~]# sed -n -r "/aaa/{= ;p}" 1
1
aaa
3
aaa


下一步(n)
[root@localhost ~]# cat 1
aaa
bbb
aaa

[root@localhost ~]# sed -n -r "/aaa/{n;=;p}" 1
2
bbb
4

[root@localhost ~]# sed -n -r "/aaa/{n;p}" 1
bbb

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值