我想使用 shell 编写一个程序,该程序给出“FolderA”(本例中的目录名称)。它会检查FolderA 中的所有文件以及FolderA 的所有子文件夹中的所有文件中是否存在某个单词(wordA),并将其替换为另一个单词(wordB)。
尝试过一些事情,比如 sed -i 's/wordA/wordB/g' 文件夹A/*
但这会产生错误,因为文件夹 A 内还有其他文件夹,并且 sed 在运行到另一个子文件夹时会产生错误。
我无法想出一种方法来使用 find 来获取目录和所有子目录中的所有文件,然后对它们执行 sed 。有没有办法做到这一点?我对 shell 很陌生。
谢谢!
最佳答案
您可以使用find -exec
来实现:
find /FolderA -type f -exec sed -i 's/wordA/wordB/g' {} +
关于bash - 使用shell修改文件夹及其所有子文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28223738/