コマンドを一度だけ実行して複数のファイルでコマンドを実行するにはどうすればよいですか?

コマンドを一度だけ実行して複数のファイルでコマンドを実行するにはどうすればよいですか?

31個の区切りファイル名chr1.txt ... chr31.txtに対して次のコマンドを実行し、1回の実行で31個の出力を取得したいと思います。

これはコマンドです:

 cat input.txt  | sed 's/.\{5\}/& /g' > output.txt

どんな提案がありますか?

答え1

シェルが中括弧拡張をサポートしている場合は、次のことができます。

sed 's/.\{5\}/& /g' chr{1..31}.txt >output.txt

chr{1..31}.txtに拡張されますchr1.txtchr2.txt...chr31.txt全出力(すべてのファイルの)がに保存されますoutput.txt

答え2

単純なループがトリックを実行します。

for((i=1;i<32;i++));do cat chr$i.txt | sed 's/.\{5\}/& /g' > output$i.txt; done

関連情報