先创建一个文件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