我有一个包含许多文本文件的目录层次结构。我想在每次特定的文本字符串出现在其中一个文件中时搜索它,并将其替换为另一个字符串。例如,我可能想将每次出现的字符串“Coke”替换为“Pepsi”。有谁知道如何做到这一点?我想知道是否有某种 Bash 命令可以执行此操作,而无需在编辑器中加载所有这些文件,或者想出一个更复杂的脚本来执行此操作。
I found 这一页 http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/使用 sed 解释一个技巧,但它似乎不适用于子目录中的文件。
Use sed
结合find
。例如:
find . -name "*.txt" | xargs sed -i s/Coke/Pepsi/g
or
find . -name "*.txt" -exec sed -i s/Coke/Pepsi/g {} \;
(有关更多信息,请参阅 find 的手册页)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)