为什么执行awk命令导出文件为空 awk -F'[/,]' 'ARGIND==1{a[$0]}ARGIND>1{if ($2 in a)print $0}' b a >c

文件a:10/05766798607,11/20050325191329,29/0.1,14/0576679860710/05767158557,11/200503251... 文件a:
10/05766798607,11/20050325191329,29/0.1,14/05766798607
10/05767158557,11/20050325191329,29/0.08,14/05767158557

文件b:
05766798607
05766798608
05766798609
通过文件a和文件b对比,导出这样的文件出来.
10/05766798607,11/20050325191329,29/0.1,14/05766798607
正确答案应该:
方法一: awk -F'[/,]' 'ARGIND==1{a[$0]}ARGIND>1{if ($2 in a)print $0}' b a >c
方法二: awk -F'[/,]' 'NR==FNR{a[$0]}NR>FNR{if ($2 in a) print $0}' b a >c
root@VirtualBox:/home/susz# more b
05766798607
05766798608
05766798609
root@VirtualBox:/home/susz# more a
10/05766798607,11/20050325191329,29/0.1,14/05766798607
10/05767158557,11/20050325191329,29/0.08,14/05767158557
root@susz-VirtualBox:/home/susz# awk -F'[/,]' 'ARGIND==1{a[$0]}ARGIND>1{if ($2 in a)print $0}' b a >c
root@susz-VirtualBox:/home/susz# more c
root@susz-VirtualBox:/home/susz#没有输出文件,为什么?
展开
 我来答
百度网友53a47f9
2014-05-23 · TA获得超过401个赞
知道小有建树答主
回答量:520
采纳率:0%
帮助的人:345万
展开全部
有可能你那系统的awk不支持某些选项。我在我那是能得到正确结果的
要么就换grep来实现你想要的功能
追问
awk -F'[/,]' 'ARGIND==1{a[$0]}ARGIND>1{if ($2 in a)print $0}' b a 这么写仍然不行。
awk -F'[/,]' 'NR==FNR{a[$0]}NR>FNR{if ($2 in a) print $0}' b a,这样可以了,犯了个幼稚的错误,原文件b中有空格
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式