如何在 .gz 文件上使用 awk 提取信息而不将未压缩的数据存储在磁盘上

如何在 .gz 文件上使用 awk 提取信息而不将未压缩的数据存储在磁盘上

我需要使用这个命令:

awk 'NR==FNR {a[$1]; next} $1 in a{print}' inputfile1.txt inputfile2.gen.gz >output.txt

awk 不读取 .gz 文件。

我努力了

zcat inputfile2.gz | awk 'NR==FNR {a[$1]; next} $1 in a{print}' inputfile1.txt inputfile2.gen.gz >output.txt

它仍然不起作用。

答案1

给 Awk 一个破折号参数来表示读取其标准输入。

zcat inputfile2.gz |
awk 'NR==FNR {a[$1]; next}
    $1 in a' inputfile1.txt - >output.txt

(另请注意,我取出了 ,{print}因为这已经是 Awk 中隐含的默认操作。)

相关内容