ファイルに対して順番にコマンドを実行する

ファイルに対して順番にコマンドを実行する

ディレクトリ内のファイルに対して順番にコマンドを実行し、各コマンドを一時停止して完了するのを待つスクリプトを作成する方法を理解しようとしています。ここに例があります。

cat >> text.txt && cat >> text2.txt

上記のコマンドは、各ファイルを手動で入力する限り、両方のファイルに対して機能します。私の個人的なプロジェクトには、text1.txt...text559.txtという559個のファイルがあります。

最後の手段は、端末からファイル名のリストを抽出し、テキストエディタに移動して一度実行されるスクリプトを作成することでした。可能であればこれを自動化したいので、始める方法についてのアドバイスをいただきありがとうございます。

答え1

ループを見たいと思うかもしれませんfor。その中にはbash次のようなものがあります。

for file in "${list_of_files[@]}"
do
  run_command "$file"
done

これは"${list_of_files[@]}"、他の場所で設定した配列でも、ファイル名のリテラルリストに置き換えることも、ファイル名のグローブパターンでもかまいませんtext*.txt

ループはそのループ反復で作業しているrun_command単一の引数として実行され、次のループ反復に進む前に各引数が完了するのを待ちます。$filerun_command

関連情報