sed用法

 

2-1、n命令
n命令简单来说就是提前读取下一行,覆盖模型空间前一行(并没有删除,因此依然打印至标准输出),如果命令未执行成功(并非跳过:前端条件不匹配),则放弃之后的任何命令,并对新读取的内容,重头执行sed。
例子:
从aaa文件中取出偶数行
cat aaa 
This is 1 
This is 2 
This is 3 
This is 4 
This is 5

sed -n 'n;p' aaa //-n表示隐藏默认输出内容 
This is 2 
This is 4
注释:读取This is 1,执行n命令,此时模式空间为This is 2,执行p,打印模式空间内容This is 2,之后读取 This is 3,执行n命令,此时模式空间为This is 4,执行p,打印模式空间内容This is 4,之后读取This is 5,执行n 命令,因为没有了,所以退出,并放弃p命令。因此,最终打印出来的就是偶数行。

2-3、d命令
d命令是删除当前模式空间内容(不在传至标准输出),并放弃之后的命令,并对新读取的内容,重头执行sed。
d命令例子
从aaa文件中取出奇数
cat aaa 
This is 1 
This is 2 
This is 3 
This is 4 
This is 5

sed 'n;d' aaa 
This is 1 
This is 3 
This is 5
注释:读取1,执行n,得出2,执行d,删除2,得空,以此类推,读取3,执行n,得出4,执行d,删除4,得空,但是读取5时,因为n无法执行,所以d不执行。因无-n参数,故输出1\n3\n5

 

特定字符串的行后插入新行

sed -i '/特定字符串/a 新行字符串' file
posted @ 2020-05-26 12:14  aspirs  阅读(116)  评论(0编辑  收藏  举报