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
原文:http://www.cnblogs.com/XYJK1002/p/5330355.html