使用sed在文件末尾添加新行

时间:2019-10-08 15:06:26

标签: macos sed

我需要在文件末尾添加新行。但是,当我在MacOS上运行sed命令时,出现错误。

我运行的命令 sed -i'' -e '$a\wrapper{gradleVersion='5.5'}' build.gradle

我得到的错误: sed: 1: "$a\wrapper{gradleVersio ...": extra characters after \ at the end of a command

1 个答案:

答案 0 :(得分:3)

最简单的答案:不要使用sed

echo "wrapper{gradleVersion='5.5'}" >> build.gradle

很简单吧?

如果您想忽略我的建议并继续使用sed,请完成@shellter评论:

  • 在MacOS sed上,您需要在使用a命令添加文本之前添加换行符。

  • MacOS sed默认不会在要添加的文本后添加换行符,并且由于您希望文件保持POSIX标准,因此需要添加它

您可以:

sed -i '' -e '$a\
<text to add>
' <file>
  • 因为要添加单引号,所以需要将sed命令用双引号引起来,然后转义$\使其使用起来特别烦人。

尝试一下:

sed -i '' "\$a\\
wrapper{gradleVersion='5.5'}
" build.gradle

在gnu-sed上(与brew brew install gnu-sed安装),您可以这样做:

gsed -i "\$a wrapper{gradleVersion='5.5'}" build.gradle