失意的多啦

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

【十五题】计算IP Count

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

a.txt
127.0.0.1 zhangsan
127.0.0.1 wangxiaoer
127.0.0.2 lisi
127.0.0.3 wangwu    

b.txt
127.0.0.4 lixiaolu
127.0.0.1 lisi

每个文件至少有100万行,请使用linux命令行完成如下工作:

1)两个文件各自的ip数,以及总ip数
各自IP数:
cat a.txt | awk '{print $1}' | uniq -c| wc -l
cat b.txt | awk '{print $1}' | uniq -c| wc -l

总IP数:
awk -F '' '{print $1}' a.txt > c.txt
awk -F '' '{print $1}' b.txt >> c.txt
awk -F '' '{print $1}'c.txt | sort | uniq -c | wc -l


cat a.txt b.txt | awk '{print $1}' | sort | uniq -c | sort -nr
 
2)出现在b.txt而没有出现在a.txt的ip 

diff a.txt b.txt | grep '>' | awk '{print $2}' | head -1

comm -23 a.txt b.txt


3)每个username出现的次数,以及每个username对应的ip数

cat a.txt b.txt | awk '{print $2}' | sort | uniq -c | sort -nr

cat a.txt b.txt   > users.txt

awk ‘ {++S[$NF]} END {for(a in S) print a, S[a]}’ users.txt

posted on 2019-10-31 14:59  失意的多啦  阅读(140)  评论(0)    收藏  举报