linux - 我们如何使用 sed 命令在文件中写入\n?

标签 linux bash shell

当用其他具有\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/

相关文章:

linux - 在将文件写入文件时在 bash 终端中观察文件输出

linux - 用于重命名文件夹和子文件的 Shell 脚本

linux - shell 如何知道它在哪个目录中?

php - Linux 上 Azure 应用服务上的 Wordpress 上的 "cURL error 28: Resolving timed out"

bash - Unix Bash AIX - 从一个目录查找文件,但不在另一个目录中查找文件

linux - 进程何时需要同时具有写入和执行权限的内存页

linux - 在 linux 终端中输出彩色命令后,我的命令行变色了

linux - 我想使用 "awk"或 sed 打印文件中所有以 "comm="开头的行

python - 如何将文件夹压缩为zip?

php - 禁用模块会提高 PHP 性能吗?