다음과 같은 디렉토리 구조가 있습니다.
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,' "{}" \;