面试宝典里看到一道题,希望老师们帮忙解答一下


某个目录下有两个文件a.txt和b.txt.文件格式为(ip username),例如:

a.txt
210.121.123.12 zhangsan
34.23.56.78 lisi
11.56.56.72 wanger

b.txt
58.23.53.132 liuqi
34.23.56.78 liba

a.txt,b.txt 中至少 100 万行,用 linux命令行 实现下列要求(题目要求linux命令行方式。。。):
1)a.txt,b.txt 中各自的 ip 个数,ip 的总个数。
2)a.txt 中存在的 ip 而 b.txt 中不存在的 ip。
3)每个 username 出现的总个数,每个 username 对应的 ip 个数。
这个比较侧重于linux命令的一些小技巧了
后面会把这些命令的使用方式放到课程里面进行讲解。

1:
单个文件中ip个数不去重
cut -d ' ' -f 1 a.txt | wc -l

单个文件中ip去重后的总个数
cut -d ' ' -f 1 a.txt |sort | uniq |wc -l



ip总个数不去重
cut -d ' ' -f 1 a.txt b.txt | wc -l

ip去重后的总个数
cut -d ' ' -f 1 a.txt b.txt |sort | uniq |wc -l

2:
a中存在而b中不存在的ip
cut -d ' ' -f 1 a.txt b.txt |sort | uniq -u


3:
每个 username 出现的总个数
cut -d ' ' -f 2 a.txt b.txt | sort | uniq -c 
或者
awk '{arr[$2]++;}END{for(i in arr){print i , arr  }}' a.txt  b.txt 

每个 username 对应的 ip 个数
cut -d ' ' -f 1-2 a.txt b.txt | sort -k 2 | uniq -c | awk '{arr[$3]++;}END{for(i in arr){print i , arr }}'

  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值