遍历所有子目录并修改文件内容的Shell脚本

遍历所有子目录并修改文件内容的Shell脚本,shell,unix,Shell,Unix,我需要修改目录中的许多文件。我需要修改所有包含特定文本的文件,并且必须替换为一些新文本 因此,我考虑编写一个shell脚本,它将遍历所有子目录并修改内容,但在遍历所有可能的目录时我遇到了问题。您需要。您需要。您可以使用查找遍历子目录以查找文件,然后将它们传递给sed搜索和替换文本 e、 g 将查找所有txt文件并将其中的foo替换为bar -i使sed在适当的位置更改文件。如果要在更改之前备份文件,还可以向sed提供备份后缀。您可以使用find遍历子目录以查找文件,然后将其传递到sed以搜索和替

我需要修改目录中的许多文件。我需要修改所有包含特定文本的文件,并且必须替换为一些新文本


因此,我考虑编写一个shell脚本,它将遍历所有子目录并修改内容,但在遍历所有可能的目录时我遇到了问题。

您需要。

您需要。

您可以使用
查找
遍历子目录以查找文件,然后将它们传递给
sed
搜索和替换文本

e、 g

将查找所有txt文件并将其中的foo替换为bar


-i
使sed在适当的位置更改文件。如果要在更改之前备份文件,还可以向sed提供备份后缀。

您可以使用
find
遍历子目录以查找文件,然后将其传递到
sed
以搜索和替换文本

for n in $(find  | grep txt$)
do
   echo $n
   modify_content.sh $n
done
e、 g

将查找所有txt文件并将其中的foo替换为bar

-i
使sed在适当的位置更改文件。如果您想在更改文件之前备份这些文件,还可以为sed提供备份后缀。

GNU find

for n in $(find  | grep txt$)
do
   echo $n
   modify_content.sh $n
done
find /some_path -type f -name "*.txt" -exec sed -i 's/foo/bar/g' "{}" +;
GNU查找

find /some_path -type f -name "*.txt" -exec sed -i 's/foo/bar/g' "{}" +;

:)


:)。无需使用
-print
,并且您对
-name
使用了错误的模式。您可以使用
-i.bak
来创建备份文件(
.bak
在这种情况下扩展名)。