我可以用 uniq 号码进行操作吗?

我可以用 uniq 号码进行操作吗?
read W

gawk '$9=="404" || $9=="403"' log.txt | gawk '{print $7}' |  sort -k7 | uniq -c | sort -nr | awk '{ $(NF+1) = "-"; $(NF+1) = $1; $1 = NR "."; $(NF+1) = "-"; print}' | head -"$W"

我有这个脚本,它接受输入 w 并打印 w 行数。

输出 :

1. /example/.comments - 28 -
2. /example/example.atom.xml - 9 -
3. /example/When/200x/2003/04/10/-big/Concorde.jpg - 8 -
4. /example/When/200x/2006/03/30/-big/IMG_4613.jpg - 7 -
5. /example/When/200x/2003/07/25/-big/guild-2.jpg - 6 -

我可以以某种方式从 uniq 中获取值并用它来查找错误总数的百分比吗? (uniq数*100/错误总数)(总数87)

或者可以在 diphi 之后立即分裂吗?

1. /example/.comments - 28 - 32.2%
2. /example/example.atom.xml - 9 - 10.3%
3. /example/When/200x/2003/04/10/-big/Concorde.jpg - 8 - 9.2%
4. /example/When/200x/2006/03/30/-big/IMG_4613.jpg - 7 - 8.0%
5. /example/When/200x/2003/07/25/-big/guild-2.jpg - 6 - 6.9%

答案1

awk 的方法是 读取文件两次。在第一遍中,计算t倒数第二个字段的总计$(NF-1)。在第二遍中,计算百分比并将其附加到该行。

awk 'NR==FNR{t+=$(NF-1); next}{printf "%s %.1f%\n", $0, 100*$(NF-1)/t}' file file

相关内容