我需要将文件中的字符串替换"'a"
为'a
. 在实践中,我需要删除双引号。
我正在考虑使用 sed 来执行此操作,但直到现在我才找到解决方案:我想我因为引号而犯了一些语法错误。
如果您只需要从文件中删除所有双引号字符,那么您可以使用tr
以下-d
选项:
$ cat test.txt
this is a test "'a"
something "else"
doesn't touch single 'quotes'
$ cat test.txt | tr -d '"'
this is a test 'a
something else
doesn't touch single 'quotes'
更新:
如果要替换特定实例,"'a"
则'a
可以使用sed
:
sed "s|\"'a\"|'a|g" test.txt
this is a test 'a
something "else"
doesn't touch single 'quotes'
但是,我怀疑您所追求的不仅仅是替换字符周围的引号a
。此sed
命令将替换"'anything"
with的任何实例'anyhting
:
sed "s|\"'\([^\"]\+\)\"|'\\1|g" test.txt
this is a test 'a
something "else"
doesn't touch single 'quotes'
这似乎对我有用
echo '"a"' | sed "s/\"a\"/\'a/"
这可能对您有用(GNU sed):
sed 's/"\('\''[^"]*\)"/\1/g' file
你可以使用:
perl -pe 's/\042//g' your_file
042 是双引号的八进制值。
测试如下:
> cat temp
"'a"
> cat temp | perl -pe 's/\042//g'
'a
>