【发布时间】:2018-12-05 16:23:42
【问题描述】:
我必须在 bash 脚本中添加变量:
$string = "The cat is green.\n"
$line = "Sunny day today.\n"
这些变量中的每一个都包含“\n”字符,我如何使用 sed 进行搜索和替换:
sed 's/$string/$line/g' file.txt
这似乎不起作用,如果我从字符串中删除“\n” sed 可以正常工作。 如果我只有文本,我可以通过添加反斜杠来转义“\n”:
sed 's/"The cat is green.\\n"/"Sunny day today.\\n"/g' file.txt
当变量中包含“\n”时,我该如何进行搜索/替换。 谢谢你的帮助。
【问题讨论】:
-
你能显示
file.txt的确切格式吗?sed一次读取一行,可以进行多行匹配,但它对保留空间的使用很繁琐。顺便说一句,在's/$string/$line/g'周围使用单引号意味着变量不会被替换,它会寻找文字$string。
标签: bash search sed replace newline