我想合并两个解压缩的文件f1
并f2
在一个命令中,例如
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