我想使用sed命令/^$d
从文件中删除空行,然后我想在文件末尾添加一行。所以当我尝试在我的命令文件中执行此操作时
/^$/d \
$ a \
My color is blue
然后执行我得到的错误,说明:第一行命令后的额外字符。我已经读过你使用' \'当结束一个行命令时,为什么它将它读作额外的字符???
答案 0 :(得分:4)
您的错误是第一行末尾的 \ 字符。
你需要在第二行(对于a
命令)给a
命令添加一些东西,但第一个命令在看到行尾时完成。通过继续该行,您会混淆sed
因为它认为命令一起运行。
答案 1 :(得分:3)
补充Etan Reisner's有用的答案:
sed
命令位于不同的行上。a
函数调用),则必须{{1逃避它。答案 2 :(得分:0)
如果您想尝试,请参阅以下awk
解决方案:
awk 'NF; END {print "new line"}' file
NF
仅在行上有一些字段时才有效,即有数据
END {print "new line"}
这会在文件末尾添加一行。