如何仅替换某些名称包含特定字符串的文件夹下的文件中的字符串

如何仅替换某些名称包含特定字符串的文件夹下的文件中的字符串

我有这样的目录结构:

resources/config/config_12_33/en/config1.txt

resources/config/config_12_33/fr/config1.txt

resources/config/config_12_34/en/config1.txt

resources/config/config_12_34/fr/config1.txt

resources/config/config_15_33/en/config1.txt

resources/config/config_15_33/fr/config1.txt

resources/config/config_15_34/en/config1.txt

resources/config/config_15_34/fr/config1.txt

resources/config/config_18_33/en/config1.txt

resources/config/config_18_33/fr/config1.txt

resources/config/config_18_34/en/config1.txt

resources/config/config_18_34/fr/config1.txt

假设我们总共有一个“OldString”配置1.txtconfig_15_*文件,如果 config1.txt 文件位于文件夹下,我们希望将“OldString”替换为“NewString” 。

我知道如何用find和替换所有 config1.txt 中的字符串sed,但我不知道如何替换某些文件夹下文件中的字符串并保持其他文件夹不变。

答案1

你可以这样find输入:find

find . -name "config_15*" -type d -print0 | xargs  -0 -I'()' find '()' -type f -exec sed -i 's,OldString,NewString,' "{}" \;

相关内容