次のような多くのファイルのリストがあります。
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
これが望ましい結果に満足したら、エコーを取り除きます。
この回答は、複数のディレクトリを巡回したい場合はうまく機能しませんが、元の質問に従い、フラットディレクトリである可能性があります。