Awk,但仅打印字段的一部分

Awk,但仅打印字段的一部分

我只关心日志行中特定字段(主机名)的一部分,并希望打印该部分的所有唯一出现次数。我目前正在做类似的事情:

    zcat $file | awk '$2~/f/ {print $14}' | sort | uniq -c | sort -rn

问题是字段 14 会很长,并且包含一堆内容,例如

/=/%%/25284687/hostname/auhga/giu/2985729/%/etc...

主机名可能会有所不同,而我只想打印唯一的主机名,对它们进行排序和计数等。我该如何更好地构造 awk 命令来实现这一点?重要的是要注意,在 /hostname/ 部分前面和后面添加的所有内容都会有所不同。

答案1

如果主机名始终位于输出/中的第 4 个和第 5 个之间awk,则此过程将提取它们:

cut -d / -f 5

将其放置在原来的之后awk

相关内容