我需要使用"'a"
之类的字符串替换像'a
这样的文件字符串。
在实践中,我需要删除双引号。
我当时想用sed来做,但是我现在找不到解决方案:我猜我因为引号而犯了一些语法错误。
答案 0 :(得分:2)
如果您只需要从文件中删除所有双引号字符,则可以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"
的任何实例替换为'anyhting
:
sed "s|\"'\([^\"]\+\)\"|'\\1|g" test.txt
this is a test 'a
something "else"
doesn't touch single 'quotes'
答案 1 :(得分:0)
这似乎对我有用
echo '"a"' | sed "s/\"a\"/\'a/"
答案 2 :(得分:0)
你可以使用:
perl -pe 's/\042//g' your_file
042是双引号的八进制值。
测试如下:
> cat temp
"'a"
> cat temp | perl -pe 's/\042//g'
'a
>