如何粘贴多个命令的输出

如何粘贴多个命令的输出

我想合并两个解压缩的文件f1f2在一个命令中,例如

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

什么是正确的语法?

答案1

差不多了...

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

答案2

很好的答案:非常感谢。

我用它来粘贴三列,每一列都在一个压缩文件中。

仅供分享:源3200个redhat机器,每天大约2.5亿个积分...

这并不完全是我们在本地获取所有文件的方式,但抓住了这个想法(我们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对应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  

相关内容