当用其他具有\n 的字符串替换文件中的字符串时,替换时它会进入一行,而不是在 shell 中写入\n。
程序-
string="status=\"translated\">NIRANJAN\\nKUMAR"
sed -i 's/status="translated">/'"$string"' /g' text.txt
文本文件包含 - status="translated">修复
输出为:
status="translated">NIRANJAN
KUMAR
但我想要status="translated">NIRANJAN\nKUMAR
请建议我的步骤。谢谢:)
最佳答案
在此作业中您已经丢失了一些反斜杠:
string="status=\"translated\">NIRANJAN\\nKUMAR"
\\
将被简化为单个 \
,因此您最终会在 sed 命令中得到 \n
,从而产生换行符(至少在某些版本的 sed 上)。
要保留它们,请在字符串文字两边使用单引号:
string='status="translated">NIRANJAN\\nKUMAR'
现在您的 sed 命令应该按照您的预期运行。
关于linux - 我们如何使用 sed 命令在文件中写入\n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50288750/