sed命令学习

sed命令是轻量级流编辑器,主要用来将数据进行选取、替换、删除、新增的命令

sed [选项]  ‘[动作]’  文件名

选项:

— -n: 一般sed命令会把所有数据都输出到屏幕上,如果假如此选择,则只会把经过sed命令处理的行输出到屏幕

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

— -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出。

动作:

— a:追加,在当前行后添加一行或多行

— c:行替换,用c后面的字符串替换原数据行

— i:插入,在当前行前插入一行或多行。

— d:删除,删除指定的行

— p:打印,输出指定的行

—s :字符替换,用一个字符串替换另外一个字符串。格式为:“行范围s/旧字符串/新字符串/g” (和vim中的替换格式类似)(如果不加g,表示只对第一个有效,不管后面出现的)

测试数据:

1.打印第二行

[root@myfuture ~]# sed '2p' student.txt 
ID    Name    gender    Mark
1    furong    F    85
1    furong    F    85
2    fengj    F    60    
3    cang    F    70

加入-n参数

[root@myfuture ~]# sed -n '2p' student.txt 
1    furong    F    85

2.删除第二行:

[root@myfuture ~]# sed '2d' student.txt
ID    Name    gender    Mark
2    fengj    F    60    
3    cang    F    70

3.删除第二行和第四行之间的内容

[root@myfuture ~]# sed '2,4d' student.txt
ID    Name    gender    Mark

4.在第二行后追加数据

[root@myfuture ~]# sed '2a piaoliang jiushi renxing'  student.txt
ID    Name    gender    Mark
1    furong    F    85
piaoliang jiushi renxing
2    fengj    F    60    
3    cang    F    70

第二行前添加数据

[root@myfuture ~]# sed '2i meinv' student.txt
ID    Name    gender    Mark
meinv
1    furong    F    85
2    fengj    F    60    
3    cang    F    70

5.数据替换

[root@myfuture ~]# sed '2c furong bu ji ge' student.txt
ID    Name    gender    Mark
furong bu ji ge
2    fengj    F    60    
3    cang    F    70

第三行的60替换为90

[root@myfuture ~]# sed '3s/60/99/g' student.txt
ID    Name    gender    Mark
1    furong    F    85
2    fengj    F    99    
3    cang    F    70

将修改直接写入文件

[root@myfuture ~]# sed -i '3s/60/99/g' student.txt
[root@myfuture ~]# cat student.txt
ID    Name    gender    Mark
1    furong    F    85
2    fengj    F    99    
3    cang    F    70

同时把fengj和cang替换为空,加入-e

原文地址:https://www.cnblogs.com/XYJK1002/p/5330355.html