我需要在文件末尾添加新行。但是,当我在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
答案 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 -i '' "\$a\\
wrapper{gradleVersion='5.5'}
" build.gradle
在gnu-sed上(与brew brew install gnu-sed
安装),您可以这样做:
gsed -i "\$a wrapper{gradleVersion='5.5'}" build.gradle