首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awk比较- GunZip文件:

awk比较- GunZip文件:
EN

Stack Overflow用户
提问于 2014-04-30 13:41:13
回答 1查看 104关注 0票数 1

想知道如何更改以下命令,如果输入文件是*gz格式,以比较两个文件

这个命令起作用了

代码语言:javascript
复制
awk -F, 'FNR==NR {a[$1]=$0;next} {if (!($1 in a)) print $0,a[$1] ; }' OFS=, f22.txt f11.txt>Output_f33.txt

因为这个命令不起作用

代码语言:javascript
复制
awk -F, 'FNR==NR {a[$1]=$0;next} {if (!($1 in a)) print $0,a[$1] ; }' OFS=, f22.txt.gz f11.txt.gz>Output_f33.txt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-30 14:26:12

awk工作在基于文本的数据文件上。gz文件是压缩文件,这意味着它们不再是awk可以解析的格式。您必须解压缩这些文件并将它们传递给awk。你可以这样说:

代码语言:javascript
复制
awk -F, 'FNR==NR {a[$1]=$0;next} {if (!($1 in a)) print $0,a[$1] ; }' OFS=, <(gzip -dc f22.txt.gz) <(gzip -dc f11.txt.gz) > Output_f33.txt

您还可以修改命令以编写(细分以提高可读性):

代码语言:javascript
复制
awk '
BEGIN {FS = OFS = ","}
FNR==NR {a[$1] = $0; next}
!($1 in a){print $0, a[$1]}' <(gzip -dc f22.txt.gz) <(gzip -dc f11.txt.gz) > Output_f33.txt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23389754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档