Sed 用包含实数换行符和文字的替换字符串替换文件中的文本\n

Sed 用包含实数换行符和文字的替换字符串替换文件中的文本\n,sed,busybox,Sed,Busybox,如何用包含实数换行符和文字的替换字符串替换文件中的文本\n 不起作用的示例: replacement=$(printf "ABC\\nDEF\nGHI\n") sed -i "s#%PLACEHOLDER%#${replacement}#" FILE.txt 它应该只适用于busybox中包含的组件。您是要替换部分线路还是整个线路?据我所知,在s命令中不能有真正的换行符。。仅\n取决于实施情况。。。要替换整行,应使用r命令从文件中添加内容(根据具体实现,您也可以使用stdin),然后删除占位符

如何用包含实数换行符和文字的替换字符串替换文件中的文本\n

不起作用的示例:

replacement=$(printf "ABC\\nDEF\nGHI\n")
sed -i "s#%PLACEHOLDER%#${replacement}#" FILE.txt

它应该只适用于busybox中包含的组件。

您是要替换部分线路还是整个线路?据我所知,在
s
命令中不能有真正的换行符。。仅
\n
取决于实施情况。。。要替换整行,应使用
r
命令从文件中添加内容(根据具体实现,您也可以使用stdin),然后删除占位符行。.有关
r
命令的示例,请参阅和,但是这些替换行必须来自子shell(这里有一个递归函数),并保持换行的原样。这里有%PLACEHOLDER%文本,因为要替换的行可能位于不同的位置。我已经看到sed在引用时很容易断开,是否还有另一个命令可以接受包含任何可能字符(包括空格和/)的字符串?我见过awk更强大,但它真的很难理解。。。
r
命令最适合这些用途。。。它添加了文件(或stdin)中的内容,没有任何抱怨。。。