gpt4 book ai didi

apache - 如何在 awk 中打印一系列数据?

转载 作者:行者123 更新时间:2023-12-04 19:33:01 26 4
gpt4 key购买 nike

我正在使用如下语句查看我的 access_logs:

cat access_log | grep 16/Sep/2012:17 | awk '{print $12 $13 $14 $15 $16}' | sort | uniq -c | sort -n | tail -40

目的是查看过去一小时内访问我的服务器的任何人的用户代理,按点击次数排序。我的服务器有异常事件,我想阻止任何不需要的蜘蛛/等。

但部分: awk '{print $12 $13 $14 $15 $16}'会更喜欢这样的东西: awk '{print $12-through-end-of-line}'这样我就可以看到整个用户代理,每个用户代理的长度都不同。

有没有办法用 awk 做到这一点?

最佳答案

不是非常优雅,但这有效:

grep 16/Sep/2012:17 access_log | awk '{for (i=12;i<=NF;++i) printf "%s ",$i;print ""}'

它的副作用是将字段之间的多个空格压缩为一个,并在行尾放置一个额外的空格,但这可能并不重要。

关于apache - 如何在 awk 中打印一系列数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12535897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com