linux中文本批处理命令sed的使用
sed源自英语"stream editor"的缩写,意思流编辑器。sed是linux常见的命令行程序。sed 用来把文档里面的文字经过一系列编辑命令转换为另一种格式输出。 进入当前目录/home/robot,vi aaa.txt ,内容如下:1111111111111122222222222222333333333333334444444444444455555
·
sed源自英语"stream editor"的缩写,意思流编辑器。sed是linux常见的命令行程序。sed 用来把文档里面的文字经过一系列编辑命令转换为另一种格式输出。
进入当前目录/home/robot,vi aaa.txt ,内容如下:
11111111111111
22222222222222
33333333333333
44444444444444
55555555555555
11111222223333
22223333355555
sed用法1:列出文件制定行的内容
[robot@hadoop103 ~]$ sed -n '2,4p' aaa.txt #打印aaa.txt文件中的第二行到第四行。
22222222222222
33333333333333
44444444444444
参数说明: -n(关闭自动输出),p(表示打印,没有p报错)
sed用法2:批量替换文本中某个字段
[robot@hadoop103 ~]$ sed 's/11111/aaaa/g' aaa.txt #将aaa.txt中11111字段替换成aaaa
aaaaaaaa1111
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
s/替换字段/替换后字段/g 有d的模式:将所有匹配"替换字段"的字符串转换成"替换后字段"
s/替换字段/替换后字段/ 无g 将匹配"替换字段"的行转换成"替换文字",只替换一次
[robot@hadoop103 ~]$ sed 's/11111/aaaa/' aaa.txt
aaaa111111111 #后面的111111111就没有被替换成aaaa,区别上面带g的
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
注:sed默认不会修改原始文件,但-i 编辑原文件(此选项慎用,如果使用则原文件就会被修改,无法恢复)。
[robot@hadoop103 ~]$ cat aaa.txt #前面虽然用了sed替换,但是文件并没有被替换,只是显示的数据被替换了。
11111111111111
22222222222222
33333333333333
44444444444444
55555555555555
11111222223333
22223333355555
下面添加了-i参数,sed修改了原始文件,将批处理的结果更新到文件中
[robot@hadoop103 ~]$ sed -i 's/11111/aaaa/g' aaa.txt #增加了-i参数
[robot@hadoop103 ~]$ cat aaa.txt #aaa.txt文件内容被更新了
aaaaaaaa1111
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
2aaaa11132aaaa111
sed用法3:批处理删除文本中某行,或者特定内容的行
[robot@hadoop103 ~]$ sed '2d' aaa.txt #1.删除第二行数据
aaaaaaaa1111
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
参数:d,表示删除,加在行后
注意:同样,如果sed 后不加-i,所有删除操作不会更新到原始文件中,一旦加了-i就会更新文件,不可逆
[robot@hadoop103 ~]$ cat aaa.txt
aaaaaaaa1111
22222222222222
33333333333333
44444444444444
55555555555555
aaaa222223333
22223333355555
2aaaa11132aaaa111
[robot@hadoop103 ~]$ sed '/22/d' aaa.txt #2.删除含有22字段的行
aaaaaaaa1111
33333333333333
44444444444444
55555555555555
2aaaa11132aaaa111
更多推荐
已为社区贡献4条内容
所有评论(0)