複数のコマンドの出力を貼り付ける方法

複数のコマンドの出力を貼り付ける方法

f1解凍した2つのファイルを次の1つf2のコマンドにマージしたいと思います。

paste (zcat f1.gz) (zcat f2.gz). 

正しい構文は何ですか?

答え1

そこに…

paste <(zcat f1.gz) <(zcat f2.gz)

答え2

素晴らしい答え:本当にありがとう。

私はそれを使って3つの列をそれぞれ圧縮ファイルに貼り付けました。

共有用:3200個のRedhatマシンソース、毎日約2億5000万ポイント...

これはすべてのファイルをローカルにインポートする正確な方法ではありませんが、ansible実際の作業で使用されるアイデアをキャプチャします。

for i in $(cat list_of_hostnames.txt)
do
 sadf -U -- -A <file from yesterday> | pigz -9 > host_date_file.tsv.gz
done

作業ディレクトリにこれらのファイルがすべてあるとします。

pigz -cd *.tsv.gz| sed -E 's/\t/\n/g' | split --numeric-suffixes=1 -nr/6 - kk.

このコマンドを実行すると、値のホスト名、間隔、エポック、デバイス、メトリック、およびタイムスタンプ(秒)kk.01に対応する6つの圧縮ファイルが得られます。kk.06

スペースを節約するには:

rm kk.02

(タイムスタンプのある間隔は必要ありません。)

pigz -9 kk.0[13456]

今、これは次のものを使う時です。

paste <(zcat kk.05.gz ) <(zcat kk.01.gz) <(zcat kk.04.gz) <(zcat kk.06.gz) | grep '%idle' | pigz -9 > metric_host_device_value.tsv.gz  

関連情報