3 回答
TA贡献1829条经验 获得超9个赞
sed带双引号的报价代码:
$ sed "s/ones/one's/"<<<"ones thing"
one's thing
我不喜欢用数百个反斜杠来转义代码,这很伤我的眼睛。通常我是这样做的:
$ sed 's/ones/one\x27s/'<<<"ones thing"
one's thing
TA贡献1851条经验 获得超3个赞
一种技巧是使用相邻字符串的外壳程序字符串连接,并使用外壳程序转义对嵌入式引号进行转义:
sed 's/ones/two'\''s/' <<< 'ones thing'
two's thing
sed表达式中有3个字符串,然后外壳将它们缝合在一起:
sed 's/ones/two'
\'
's/'
希望对别人有帮助!
TA贡献1840条经验 获得超5个赞
只需在sed命令的外部使用双引号即可。
$ sed "s/ones/one's/" <<< 'ones thing'
one's thing
它也适用于文件。
$ echo 'ones thing' > testfile
$ sed -i "s/ones/one's/" testfile
$ cat testfile
one'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
$ cat testfile
it's more than one's thing
- 3 回答
- 0 关注
- 2487 浏览
添加回答
举报