名前に特定の文字列を含むフォルダの下のファイルから特定の文字列のみを置き換える方法

名前に特定の文字列を含むフォルダの下のファイルから特定の文字列のみを置き換える方法

次のディレクトリ構造があります。

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」に置き換えようとします。

findconfig1.txtのすべての文字列をおよびに置き換える方法を知っていますが、sed特定のフォルダの下にあるファイルの文字列を置き換え、他のフォルダは変更せずにそのままにする方法がわかりません。

ベストアンサー1

find次のように入力できます。find

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

おすすめ記事