フォルダ内の各ファイル名をパラメータとしてコマンドを実行する

フォルダ内の各ファイル名をパラメータとしてコマンドを実行する

コマンドを実行し、abc という名前を付けて、現在のフォルダー内の各ファイル名をパラメーターとして追加したいと思います。これを C Shell (または他のスクリプト言語) で実行するにはどうすればよいですか?

答え1

cshまたは を使用するとtcsh、現在のディレクトリ内のすべてのファイルとディレクトリが反復処理されます。$i名前の一部にスペースが含まれている場合に備えて、変数の置換を引用符で囲んでいます。

foreach i (*)
   abc "$i"
end

ディレクトリではなくファイルのみを取得したい場合は、-fテストを使用します。ここでは、C シェルの短縮形式のifステートメントを使用しました。

foreach i (*)
   if (-f "$i") abc "$i"
end

答え2

見上げるxargsあなたのシェルが私のものと同じであれば、次のシェルはうまく動作するはずです:

find . -type f -maxdepth 1 | xargs abc

ファイル名のスペースが気になる場合は、以下の Daniel Andersson のコメントを参照してください。

関連情報