我有一个平面文件,其中有多个包含单引号的string,例如hari's
和leader's
。
我想用空格replace所有出现的单引号,即
hari's
所有发生到hari s
leader's
到leader 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