sed的详细用法demo

本文详细介绍SED命令的基础用法及高级技巧,包括查找、删除、替换等操作,并通过具体实例演示如何利用SED进行文本处理和文件内容修改。

先创建一个文件test
内容为:

lijie1:one   lijie2:two  lijie3:three
hehe1:one1   hehe2:two2 hehe3:three3

1.查找

[root@lijie hadoop]# sed -n /lijie/p test
lijie1:one   lijie2:two  lijie3:three

2.对当前字段的删除

--匹配删除
[root@lijie hadoop]# cat ./test | sed /lijie/d
hehe1:one1   hehe2:two2 hehe3:three3

--指定函数删除
[root@lijie hadoop]# cat ./test | sed 2d
lijie1:one   lijie2:two  lijie3:three

--多行删除(1-4行)
[root@lijie hadoop]# cat ./test | sed 1,4d

--删除到最后
[root@lijie hadoop]# cat ./test | sed "3,$"d

3.替换

--给替换第一个
[root@lijie hadoop]# cat test | sed s/hehe/heihei/
lijie1:one   lijie2:two  lijie3:three
heihei1:one1   hehe2:two2   hehe3:three3

--替换所有
[root@lijie hadoop]# cat test | sed s/hehe/heihei/g
lijie1:one   lijie2:two  lijie3:three
heihei1:one1   heihei2:two2 heihei3:three3

4.替换然后打印匹配行

[root@lijie hadoop]# cat test | sed -n /three3/s/hehe/heihei/gp
heihei1:one1   heihei2:two2 heihei3:three3

5.复合条件-e(把lijie换成hadoop,把匹配three3的hehe换为heihei)

[root@lijie hadoop]# cat test | sed -n -e s/lijie/hadoop/gp -e /three3/s/hehe/heihei/gp
hadoop1:one   hadoop2:two  hadoop3:three
heihei1:one1   heihei2:two2 heihei3:three3

6.对文件进行修改

[root@lijie hadoop]# sed -i -n -e s/lijie/hadoop/gp -e /three3/s/hehe/heihei/gp test 
[root@lijie hadoop]# cat test 
hadoop1:one   hadoop2:two  hadoop3:three
heihei1:one1   heihei2:two2 heihei3:three3

7.将某个文件的文件替换到匹配的那一行后面(r和R不同)

--r
[root@lijie hadoop]# sed /hadoop/'r test1' test
hadoop1:one   hadoop2:two  hadoop3:three
n1
n2
heihei1:one1   heihei2:two2 heihei3:three3

--R
[root@lijie hadoop]# sed /hadoop/'r test1' test
hadoop1:one   hadoop2:two  hadoop3:three
n1
heihei1:one1   heihei2:two2 heihei3:three3
hadoop4:one   hadoop5:two  hadoop6:three
n2
hadoop7:one   hadoop8:two  hadoop9:three

8.追加字符a为匹配行后,i为匹配行前

[root@lijie hadoop]# sed /hadoop/'a this is append str' test
hadoop1:one   hadoop2:two  hadoop3:three
this is append str
heihei1:one1   heihei2:two2 heihei3:three3

[root@lijie hadoop]# sed /hadoop/'i this is append str' test
this is append str
hadoop1:one   hadoop2:two  hadoop3:three
heihei1:one1   heihei2:two2 heihei3:three3

9.整行替换

[root@lijie hadoop]# sed /hadoop/'c new line' test
new line
heihei1:one1   heihei2:two2 heihei3:three3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值