印刷出力をawkの複数のファイルにリダイレクトする

印刷出力をawkの複数のファイルにリダイレクトする

同じ行を2つの異なるファイルに印刷したいと思います。私が今やっていることは:

print ID[i]" "Value[i]" "TS1[i]" "TS2[i] > "file1.txt";
print ID[i]" "Value[i]" "TS1[i]" "TS2[i] > "file2.txt";

これを2つの異なるファイルにリダイレクトするコマンドを作成できますか?

編集する

コマンド全体の出力を複数のファイルに印刷したくない場合、いくつかの条件に基づいていくつかのレコードを複数のファイルに書き込んでスクリプトに印刷しawkたいので、次のものが必要です。効率的なこれを行う方法。

ベストアンサー1

これを行うためには使用できませんawk

を使用すると、tee次のことができます。

$ awk '{print ID[i]" "Value[i]" "TS1[i]" "TS2[i]}' file | tee out1 out2

tee -a既存のファイルを上書きするのではなく、追加したい場合に使用します。

出力全体を印刷したくない場合は、以下を試してください。

awk '
    BEGIN {outfile["a.txt"];outfile["b.txt"]}
    { for (file in outfile) { print > file } }' file

おすすめ記事