#!/bin/bash

# 一条完整的记录如下:
# 192.168.1.20 - - [21/Apr/2020:14:27:49 +0800] "GET /1/index.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"

# 根据输出说明,是把IP去重

# 思路: 先去重IP相同的行,再规定时间,然后统计IP个数  (一开始的想法)
# 新思路: 找出2020年04月23日20点至23点的行, awk只输出IP,排序,uniq去重相邻的重复行,wc计算有多少行

# uniq 可以从输入中删除重复的行。它通常与 sort 命令一起使用,因为 uniq 只能去除相邻的重复行,因此常常需要先对数据进行排序

grep  '23\/Apr\/2020:2[0-3]' nowcoder.txt | awk '{print $1}' | sort | uniq | wc -l


# grep  '23\/Apr\/2020:2[0-3]' nowcoder.txt    找出2020年04月23日20点至23点的行
# awk '{print $1}'    awk只输出IP,排序
# sort | uniq        排序,并且去重
# wc -l            计算IP个数

END