我有一大堆文件,其中都有文本块,如下所示:
"Each file has different text between the opening double-quote
and the closing right-quote (or whatever it's called)”
也许不相关,但在过去我使用grep
进行搜索并替换为:
grep -Rl 'search' ./path/to/files/ | xargs sed -i 's/search/replace/g
有没有办法做类似的事情,但是使用正则表达式用左引号(“
)替换开头的普通旧双引号?替换正确的双引号字符的唯一可靠方法是搜索右引号,然后向后搜索他之前的双引号。我认为。我不确定这是否可能或如何做到。
我可以用PHP脚本来做,但是我不会从命令行看看它是否可行。
答案 0 :(得分:2)
您可以使用sed:
sed -i.bak 's/"\([^”]*”\)/“\1/' file
cat file
“Each file has different text between the opening double-quote and the closing right-quote (or whatever it's called)”