<返回更多

Linux sed命令介绍

2020-03-13    
加入收藏

简介

sed命令应用广泛,使用简单,是文本流编辑器的利器,逐行对文件的内容进行处理处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),可以指定仅仅处理哪些行。sed处理完成之后把缓冲区的内容送往屏幕,接着处理下一行,这样不断重复, 直到文件末尾。sed符合条件的处理,不符合条件的不予处理,文件内容并没有改变,除非用重定向存储输出。

一. 简单入门

1. 输出范围行

 

Linux sed命令介绍

 

 

参数 -n 这个参数是--quiet或者--silent的意思。表明忽略执行过程的输出,只输出我们的结果即可。

我们常用的还有另外一个参数:-i。使用此参数后,所有改动将在原文件上执行。你的输出将覆盖原文件。非常危险,一定要注意。

范围1,4 表示找到文件中1,2,3,4行的内容。这个范围的指定很有灵性,请看以下示例(请自行替换图中的范围部分)。

5 选择第5行。

2,5 选择2到5行,共4行。

1~2 选择奇数行。

2~2 选择偶数行。

2,+3 和2,5的效果是一样的,共4行。

2,$ 从第二行到文件结尾。

 

Linux sed命令介绍

 

 

范围的选择还可以使用正则匹配。

请看下面示例:

/abc/,+3 选择出现abc字样的行,以及后面的三行。 
/^abc/,/xyz / 选择以abc开头的行,和出现xyz字样行之间的数据。

为了直观,下面的命令一一对应上面的介绍,范围和操作之间是可以有空格的。

sed -n '5p' test.txt

sed -n '2,5 p' test.txt

sed -n '1~2 p' test.txt

sed -n '2~2 p' test.txt

sed -n '2,+3p' test.txt

sed -n '2,$ p' test.txt

sed -n '/abc/,+3 p' test.txt

sed -n '/^abc/,/xyz/p' test.txt

 

Linux sed命令介绍

 

 

Linux sed命令介绍

 

 


操作 p表示打印

 

2 . 替换操作

 

Linux sed命令介绍

 

 

替换模式的参数有点多,但第一部分和第五部分都是可以省略的,"/"可以用"@"、”#“等符号代替。替换后会将整个文本输出出来。前半部分用来匹配一些范围,而后半部分执行替换的动作。

这里的命令是指s。也就是substitute的意思。

sed 's/aaa/bbb/' a.txt #替换每一行的第1个aaa为bbb

sed 's/aaa/bbb/g' a.txt #替换每一行的所有aaa为bbb
sed 's/aaa/bbb/2' a.txt #替换每一行的第2个aaa为bbb
sed '1,10s/aaa/bbb/g' #替换第1行到第10行所有的aaa为bbb
sed 's/^[0-9]/(&)/' a.txt #将数字加上一个(), &为匹配到的内容

sed '/sys/,+3 s/a/b/g' file

sed '/^abc/,/xyz/s/a/b/g' file

 

Linux sed命令介绍

 

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>