我有一个平面文件,其中多次出现包含单引号的字符串,例如hari's
和leader's
.
我想用空格替换所有出现的单引号,即
- 的所有
hari's
出现hari 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'
高温高压
只需离开单引号并输入转义单引号即可:
sed 's/'\''/ /g' input
也可以使用变量:
quote=\'
sed "s/$quote/ /g" input
这里是根据我自己的经验。
请注意我如何使用特殊字符'
与"
之后sed
这不行(无输出)
2521 #> echo 1'2'3'4'5 | sed 's/'/ /g'
>
>
>
但这会做
2520 #> echo 1'2'3'4'5 | sed "s/'/ /g"
12345
我不得不用“32'h”替换“0x”字符串并解决:
sed 's/ 0x/ 32\x27h/'
-i 应该在文件 sed -i 's/“/”/g' filename.txt 中替换它
如果你想要备份你可以做 sed -i.bak 's/“/"/g' filename.txt