免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2031 | 回复: 7
打印 上一主题 下一主题

关于 awk && !a[b = $1] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-18 15:36 |只看该作者 |倒序浏览
awk  'NR==FNR {a[$1]=$1} NR>FNR && !a[b = $1] {print $0} ' file1 file2

始终还是看不懂 && 哪个地方的意思。

到底是怎么判断的。

NR == FNR  -〉如果当前处理是第一个文件
{a[$1]=$1} -> 就把 第一个文件 第一行的数值,赋值给 a数组的同名下标变量

然后下来是 当 NR>FNR  -〉判断如果 处理第二个文件的时候

&& a[b=$1] -> 这地方就不懂了。
“&&” 是什么意思??  是 说  (NR>FNR) && (a[b=$1]) 呢,
还是说 (NR==FNR {a[$1]=$1} NR>FNR ) &&  (a[b=$1])

还有关于 a[b=$1]  这是什么意思呢,


把第一条记录赋值给b(比如123),然后弄一个 a[123]存起来,值是什么??
还是 a[b=123],值又是什么?

然后是打印所有的纪录。
如果我至只想打印前面的3条呢?

论坛徽章:
0
2 [报告]
发表于 2007-03-18 15:49 |只看该作者
awk  'NR==FNR {a[$1]=$1} NR>FNR && !a[b = $1] {print $0} ' file1 file2

如果NR==FNR 执行 a[$1]=$1

如果NR>FNR且!a[b = $1]  则执行{print $0}

!a[ b = $1]表示下标为$1的a[]数组元素非空。

论坛徽章:
0
3 [报告]
发表于 2007-03-18 16:11 |只看该作者
!a[ b = $1]表示下标为$1的a[]数组元素非空。

说反了 ^_^

论坛徽章:
0
4 [报告]
发表于 2007-03-18 16:19 |只看该作者
见笑了,lol~

论坛徽章:
0
5 [报告]
发表于 2007-03-18 17:05 |只看该作者
!a[ b = $1]表示下标为$1的a[]数组元素非空。

到底是空还是非空啊?

那为什么要弄个b出来呢  直接 a[ $1] 不可以吗?

论坛徽章:
0
6 [报告]
发表于 2007-03-19 15:42 |只看该作者
还没有解决,自己顶以下

论坛徽章:
0
7 [报告]
发表于 2007-03-22 10:37 |只看该作者
还没有解决,自己顶以下

论坛徽章:
0
8 [报告]
发表于 2007-04-13 14:21 |只看该作者
123
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP