ディレクトリ内のファイルを動的に繰り返します。

ディレクトリ内のファイルを動的に繰り返します。

次のような多くのファイルのリストがあります。

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より1レベル下にある場合、findメソッドは必要ありません。

以下を使用するようにforコマンドを変更します。

i18n/* にあるファイルの場合

また、変数を参照するときは、前に$を付ける必要があります。

私のアドバイスは、forループを初めて実行するときに安全なコマンドを使用することです。さもなければ、多くのダメージを与える可能性があります。たとえば、表示される FILE 値をリストし、実行するコマンドを表示します。

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

これが望ましい結果に満足したら、エコーを取り除きます。

この回答は、複数のディレクトリを巡回したい場合はうまく機能しませんが、元の質問に従い、フラットディレクトリである可能性があります。

関連情報