次のディレクトリ構造があります。
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,' "{}" \;