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

How to write multiple sed commands in a file?

我想使用 sed 命令从文件中删除空白行 /^$d 然后我想在文件末尾添加一行。所以当我尝试在我的命令文件中这样做时

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

然后执行我得到错误提示:第一行命令后的额外字符。我读过你在结束一行命令时使用 '\' 为什么它读取它作为额外字符???

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

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

补充 有用的答案:

  • 总是可以将完整sed命令放在不同的行上。
  • 反之,如果换行符是单个命令的部分(例如本例中的a函数调用case),你必须\-转义它。

如果您想尝试,这里有一个 awk 解决方案:

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

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