免费注册 查看新帖 |

Chinaunix

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

[故障求助] 请教关于Shell脚本数组的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-19 11:34 |只看该作者 |倒序浏览
大家好:
有一 ip.txt 文件有如下内容:
chejm  pts/0  Jun 01 08:52 (10.233.18.31)
chejm  pts/0  Jun 01 09:03 (10.233.18.31)
chejm  pts/0  Jun 01 08:52 (10.233.18.32)
chejm  pts/0  Jun 01 08:52 (10.233.18.31)
chejm  pts/0  Jun 01 08:52 (10.233.18.39)

现需要将同一时间,同一用户,不同IP登录的用户批量查出来,脚本如下:
cat ip.txt | sort | awk '{if(arr[$1$5] && arr[$1$5]!=$6)print $0; else arr[$1$5]=$6 }'

请问,这里的数组 arr[$1$5]  是什么意思,是指 $1和$5两列拼起来的用户名和时间,还是指什么?

arr[$1$5] && arr[$1$5]!=$6 这是什么意思?arr[$1$5] 这二维数组指的是什么内容呢?

待复,感谢!

论坛徽章:
0
2 [报告]
发表于 2010-07-19 14:26 |只看该作者
有人可以指教下吗?谢谢!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2010-07-19 16:55 |只看该作者
  1. 1、arr[$1$5]  是什么意思?
  2. arr是数组名。$1$5是数组下标,由$1和$5两列拼起来。
  3. 2、arr[$1$5] && arr[$1$5]!=$6 这是什么意思?
  4. arr[$1$5]不为空或0 并且 rr[$1$5]不等于$6。
  5. 3、arr[$1$5] 这二维数组指的是什么内容呢?
  6. arr[$1$5]是一维数组。它的值由之前的else arr[$1$5]=$6 赋过值。
复制代码

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2010-07-19 16:57 |只看该作者
你想学SHELL,就去CU的SHELL版逛逛吧。

论坛徽章:
0
5 [报告]
发表于 2010-07-19 21:00 |只看该作者
高手,高手,高高手。

论坛徽章:
0
6 [报告]
发表于 2010-07-22 14:23 |只看该作者
2、arr[$1$5] && arr[$1$5]!=$6 这是什么意思?

arr[$1$5]不为空或0 并且 rr[$1$5]不等于$6。

--
这个不是指 arr[$1$5] 再加 arr[$1$5] 拼起来两个字段的内容不等于第6个字段的内容吗?

&&的优先级不是比!=高的吗?
另外,arr[$1$5]是指一个数组指针,还是指 $1$5拼起来的内容?

感谢!

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-03-04 06:20:00
7 [报告]
发表于 2010-07-27 09:24 |只看该作者
这是AWK,不是 shell
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP