递归替换文件中的字符串

Ant*_*ott 3 grep sed

我想page_path\example_filename.txt用正斜杠替换字符串中的反斜杠。我还希望能够在大型文件系统上运行它并让它递归搜索所有目录。

我在网上发现有人说要使用grep, xargs,sed但我无法让它工作。我一直在尝试对分隔符和转义字符进行不同的变体,但没有得到它。

这是我试图运行的命令:
grep -lr -e 'page_path\\' * | xargs sed -i 's/page_path\/page_path//g'

提前致谢。

jof*_*fel 5

使用grep | xargs,您会遇到文件名中的空格问题。您可以通过使用:grep -lZr ... | xargs -0 sed ...使用零字节作为分隔符来避免此问题。

现在关于 sed 命令:诀窍是您可以使用代替s/a/b/任何其他字符,例如s#a#b#

 sed -i 's#page_path\\#page_path/#g'
Run Code Online (Sandbox Code Playgroud)