如何在sed中逃避单引号?
如何在已经被引号包围的sedexpression式中转义单引号?
例如:
sed 's/ones/one's/' <<< 'ones thing'
用双引号引用sed
代码:
$ sed "s/ones/one's/"<<<"ones thing" one's thing
我不喜欢用数以百计的反斜杠代码逃跑 – 伤害了我的眼睛。 通常我这样做:
$ sed 's/ones/one\x27s/'<<<"ones thing" one's thing
一个技巧是使用相邻string的shellstring连接并使用shell转义来转义embedded的引号:
sed 's/ones/two'\''s/' <<< 'ones thing'
two's thing
sedexpression式中有3个string,然后shell将它们拼接在一起:
sed 's/ones/two'
\'
's/'
希望能帮助别人!
最好的方法是使用$'some string with \' quotes \''
例如:
sed $'s/ones/two\'s/' <<< 'ones thing'