sed流编辑器,linux三剑客老二(awksedgrep

              对文件的增删改查

              -n 取消默认输出

              -p 打印

              -i 修改文件内容

              s常说的查找并替换,gs联合使用,表示全局替和换

增:a,在指定行后开始添加

  i,在指定行前开始添加

实例1-1 

[root@oldboy data]# cat 1.txt
1,crh,A
2,xyx,B
3,zw,B
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B
[root@oldboy data]# sed '2a 9,haha,A' 1.txt
1,crh,A
2,xyx,B
9,haha,A
3,zw,B
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B
[root@oldboy data]# sed '2i 9,haha,A' 1.txt 
1,crh,A
9,haha,A
2,xyx,B
3,zw,B
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B


删,d,删除指定的行

实例1-2      

[root@oldboy data]# sed '2d' 1.txt
1,crh,A
3,zw,B
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B
[root@oldboy data]# sed '2~2d' 1.txt 
1,crh,A
3,zw,B
5,gzw,C
7,wyd,B
[root@oldboy data]# sed '/crh/d' 1.txt
2,xyx,B
3,zw,B
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B


改:c 用新行取代旧行

实例1-3 

[root@oldboy data]# sed '3c 11,haha,A' 1.txt
1,crh,A
2,xyx,B
11,haha,A
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B

s:将每行的第一处匹配的字符串进行替换

g:全局替换

-i:替换并修改到文件中

实例1-4 

[root@oldboy data]# sed -i 's#C#A#' 1.txt
[root@oldboy data]# cat 1.txt
1,crh,A
2,xyx,B
3,zw,B
4,rhy,B
5,gzw,A
6,lfc,A
7,wyd,B
8,yws,B

指定行修改:

[root@oldboy data]# sed '5s#C#haha#' 1.txt
1,crh,A
2,xyx,B
3,zw,B
4,rhy,B
5,gzw,haha
6,lfc,C
7,wyd,B
8,yws,B

查:p:输出指定的内容,默认输出两次,-n,可以取消

 

实例1-5 

[root@oldboy data]# sed '2p' 1.txt
1,crh,A
2,xyx,B
2,xyx,B
3,zw,B
4,rhy,B
5,gzw,C
6,lfc,C
7,wyd,B
8,yws,B
[root@oldboy data]# sed -n '2p' 1.txt
2,xyx,B

实例1-6 按字符串查询

[root@oldboy data]# sed -n '/B/p' 1.txt
2,xyx,B
3,zw,B
4,rhy,B
7,wyd,B
8,yws,B