디렉터리의 파일을 동적으로 반복합니다.

디렉터리의 파일을 동적으로 반복합니다.

다음과 같은 많은 파일 목록이 있습니다.

i18n/
    editor.utf8
    editor_fr.utf8
    editor_ko.utf8
    editor_ge.utf8
    ...etc. (dozens of these)

fizzbuzz"입력 파일"과 "출력 파일"을 프로그램 매개변수로 사용하는 유틸리티를 실행하고 싶습니다 . 호출의 예는 다음과 같습니다.

fizzbuzz editor.utf8 editor.properties

또는:

fizzbuzz editor_fr.utf8 editor_fr.properties

그래서 내가 원하는 통화마다입력 파일아래에 다른 파일이 있고 i18n/, 출력 파일을 이름은 같지만 파일 확장자( )가 다른 파일로 만들고 싶습니다 .properties. 출력/속성 파일이 이미 존재하는 경우 완전히 덮어써야 합니다.

fizzbuzz모든 파일 .utf8에서 실행 되고 i18n/각 파일, 단 하나의 파일에 대해 동일한 이름의 출력을 지정할 수 있도록 스크립트를 어떻게 작성합니까 .properties?

지금까지 최선을 다한 시도는 다음과 같습니다.

for FILE in i18n
do
    fizzbuzz FILE FILE.properties
done

별도의 파일을 만들어주시면 됩니다 FILE.properties.

답변1

모든 파일이 i18n보다 한 수준 아래에 있으면 find 메소드가 필요하지 않습니다.

다음을 사용하도록 for 명령을 변경합니다.

i18n/*에 있는 파일의 경우

또한 변수를 참조할 때는 앞에 $를 붙여야 합니다.

내 조언은 for 루프를 처음 실행할 때 안전한 명령을 사용하라는 것입니다. 그렇지 않으면 많은 피해를 입힐 수 있습니다. 예를 들어, 보이는 FILE 값을 나열하고 실행할 명령을 표시하십시오.

for FILE in i18n/*
do
    echo "fizzbuzz $FILE $FILE.properties"
done

이것이 원하는 결과에 만족하면 에코를 제거하십시오.

이 답변은 여러 디렉터리를 순회하려는 경우 제대로 작동하지 않지만 원래 질문을 따르며 플랫 디렉터리일 수 있는 것처럼 보입니다.

관련 정보