如何在sed中转义单引号?

如何在已被引号包围的sed表达式中转义单个引号?


例如:


sed 's/ones/one's/' <<< 'ones thing'


SMILET
浏览 2493回答 3
3回答

PIPIONE

sed带双引号的报价代码:&nbsp; &nbsp; $ sed "s/ones/one's/"<<<"ones thing"&nbsp; &nbsp;&nbsp; &nbsp; one's thing我不喜欢用数百个反斜杠来转义代码,这很伤我的眼睛。通常我是这样做的:&nbsp; &nbsp; $ sed 's/ones/one\x27s/'<<<"ones thing"&nbsp; &nbsp; one's thing

皈依舞

一种技巧是使用相邻字符串的外壳程序字符串连接,并使用外壳程序转义对嵌入式引号进行转义:sed 's/ones/two'\''s/' <<< 'ones thing'two's thingsed表达式中有3个字符串,然后外壳将它们缝合在一起:sed 's/ones/two'\''s/'希望对别人有帮助!

慕斯709654

只需在sed命令的外部使用双引号即可。$ sed "s/ones/one's/" <<< 'ones thing'one's thing它也适用于文件。$ echo 'ones thing' > testfile$ sed -i "s/ones/one's/" testfile$ cat testfileone's thing如果字符串中有单引号和双引号,也可以。只是转义双引号。例如,此文件包含带单引号和双引号的字符串。我将使用sed添加单引号并删除一些双引号。$ cat testfile"it's more than ones thing"$ sed -i "s/\"it's more than ones thing\"/it's more than one's thing/" testfile&nbsp;$ cat testfile&nbsp;it's more than one's thing
打开App,查看更多内容
随时随地看视频慕课网APP