linux - uniq -c 不能与 awk 一起使用吗?

标签 linux shell awk gawk

我有一个包含多个数据的日志文件,我想从该文件中过滤 DHCPREQUEST IP,并且我想计算日志文件中对该服务内容的 IP 请求有多少次,如下所示:-

Mar 22 11:20:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:19:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.2 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:18:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.2 from aa:00:00:00:17:00 (pc) via 10.1.1.2
Mar 22 11:16:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:15:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:14:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:12:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:11:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2

使用此代码,我使用 grep IP 打印计数,但其显示重复 IP 的计数为 1,还请建议我做错了什么

five_min='Mar 22 11:15:34' 
while IFS= read -r line; do
    if [[ "$five_min" < "$line" ]] 
    then
        echo "$line" | grep DHCPREQUEST  | awk -F  " " '{print $8 }' | uniq -c
    fi
done < file.txt

最佳答案

您在一行上运行该命令,因此得到 1 是有意义的。

具有以下test.txt:

Mar 22 11:20:34 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:20:35 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2
Mar 22 11:20:36 DHCP-IP dhcp: DHCPREQUEST for 10.1.1.1 from aa:00:00:00:00:00 (pc) via 10.1.1.2

命令:

grep DHCPREQUEST test | awk '{print $8}' | uniq -c

打印:

3 10.1.1.1

关于linux - uniq -c 不能与 awk 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49506889/

相关文章:

c++ - 使用 Eclipse 调试 C++ 库

java - 关于 sudo su - 用户 - 在 jsch 中的想法

awk - 使用 awk 求相似行的总和

database - 如何使用 sed 使用引用文件在文件中进行数千次替换?

linux - connman:一次自动连接到多个以太网接口(interface)

linux - Bash 脚本 : Using "script" command from a bash script for logging a session

linux - 在 linux 中显示 perl 脚本的输出

c - 在 C 中为 shell 脚本使用变量

bash - 为什么我不应该在 shell 脚本上使用 "bet the future of the company"?

awk - 尝试使用 AWK 删除 html 文件中的文本