sed 有很多有意思的命令和参数,遇到几个,记录以下:
-e 允许在同一行执行多个命令
$ sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
-i[SUFFIX] 普通用法不包含后缀SUFFIX,即将替换结果应用于源文件。但是加上SUFFIX后,则会以SUFFIX备份。
$sed -i.org "s/aa/bb/g" example ---------
sed 'expression1; expression2' 组合多个表达式。
这个方法其实等价于用管道组合多个sed表达式,即等价于 sed 'expression1' | sed 'expression2'
n命令:读取下一个输入行,用下一个命令处理新的行而不是用第一个命令。
$ sed '/test/{ n; s/aa/bb/}' example-----如果test被匹配,则移动到匹配行的下一行,替换这一行的aa,变为bb,并打印该行,然后继续。