如何用sed中的空格replace单引号?

我有一个平面文件,其中有多个包含单引号的string,例如hari'sleader's

我想用空格replace所有出现的单引号,即

  • hari's所有发生到hari s
  • leader'sleader s leader's所有事情

我试过了

 sed -e 's/"'"/ /g' myfile.txt 

 sed -e 's/"'"/" "/g' myfile.txt 

但他们没有给我预期的结果。

尽量保持sed命令的简单,否则你会在稍后阅读之后感到困惑。

 #!/bin/bash sed "s/'/ /g" myfile.txt 

这将做你想要的

 echo "hari's"| sed 's/\x27/ /g' 

它将取代文件/文本中任何位置的单引号。 即使他们用于引用,他们将被替换为空格。 在这种情况下(删除单词内部的引号而不是文字边界),您可以使用以下内容:

 echo "hari's"| sed -re 's/(\<.+)\x27(.+\>)/\1 \2/g' 

HTH

只要离开单引号,并把一个逃脱的单引号:

 sed 's/'\''/ /g' input 

也可以用一个变量:

 quote=\' sed "s/$quote/ /g" input 

这是根据我自己的经验。

请注意我在sed之后如何使用特殊字符' vs "

这不会(没有输出)

 2521 #> echo 1'2'3'4'5 | sed 's/'/ /g' > > > 

但是这样做

 2520 #> echo 1'2'3'4'5 | sed "s/'/ /g" 12345 

-i应该在文件sed -i's /“/”/ g'filename.txt中替换它

如果你想备份你可以做sed -i.bak的/“/”/ g'filename.txt