【发布时间】:2014-06-14 14:05:42
【问题描述】:
我有一大堆文件,其中都有如下所示的文本块:
"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 脚本来完成,但我无法从命令行查看它是否可行。
【问题讨论】:
-
两行之间是否有换行符?
-
不,抱歉。那只是为了防止SO中的水平滚动条。
-
很高兴知道,所以您只想将
”替换为"? -
不,我想将
"替换为“。 -
“唯一可靠的方法”?如果所有直双引号都是错误的,而所有右双引号都是正确的,那么只需要替换直双引号即可。
标签: regex replace sed grep xargs