如何在文件中编写多个sed命令?

时间:2015-03-04 03:18:10

标签: bash sed

我想使用sed命令/^$d从文件中删除空行,然后我想在文件末尾添加一行。所以当我尝试在我的命令文件中执行此操作时

/^$/d \
$ a \
My color is blue

然后执行我得到的错误,说明:第一行命令后的额外字符。我已经读过你使用' \'当结束一个行命令时,为什么它将它读作额外的字符???

3 个答案:

答案 0 :(得分:4)

您的错误是第一行末尾的 \ 字符。

你需要在第二行(对于a命令)给a命令添加一些东西,但第一个命令在看到行尾时完成。通过继续该行,您会混淆sed因为它认为命令一起运行。

答案 1 :(得分:3)

补充Etan Reisner's有用的答案:

  • 始终确定完整的 sed命令位于不同的行上。
  • 相反,如果换行符是单个命令的 part (例如本例中的a函数调用),则必须{{1逃避它。

答案 2 :(得分:0)

如果您想尝试,请参阅以下awk解决方案:

awk 'NF; END {print "new line"}' file

NF仅在行上有一些字段时才有效,即有数据 END {print "new line"}这会在文件末尾添加一行。

相关问题