用包含 (') 的字符串替换文本

用包含 (') 的字符串替换文本

我想用包含“something something”的另一行替换文件中的一行。我尝试通过 sed 和反斜杠来实现这​​一点,但没有成功。我尝试了“s/original/'something something'”,我在每个 (') 前插入了一个反斜杠,但没有成功。

有什么想法吗? 如果使用 sed 无法实现这一点,我很乐意尝试其他工具。

答案1

如果或都不original包含something something其他特殊字符,则可以使用外部双引号:

$ echo 'original' | sed "s/original/'something something'/"
'something something'

否则,您可以关闭外部单引号,插入文字(转义)引号,然后再次打开外部引号:

$ echo 'original' | sed 's/original/'\''something something'\''/'
'something something'

相关内容