我想问一下这条线有什么问题?
sed -i "/$PWD/a\ Hello World" historia.txt
Run Code Online (Sandbox Code Playgroud)
当我拥有它时,''除了""它正在工作之外,当然没有扩展变量。
问题在于路径包含/字符,并且您在其中使用的字符也用于sed替换参数分离。最简单的解决方案是在 中使用另一个分隔符sed,一个不会出现在您的数据中(比如 a |,或者,在我随后的示例中,逗号):
sed -i "s,${PWD},a Hello World," historia.txt
Run Code Online (Sandbox Code Playgroud)
编辑:上面解释了您遇到的问题(冲突的斜线)。但是我看到(现在)您不是在替换而是在匹配行之后添加一行。在这种情况下,您可以转义PWD路径中的斜杠sed,例如:
sed -i "/${PWD//\//\\/}/a Hello World" historia.txt
Run Code Online (Sandbox Code Playgroud)