我从我的日志统计信息,数据和值中提取了grep
的数据:
Apr-1 -4
Apr-1 -2
Apr-1 -5
Apr-1 5
Apr-1 95
Apr-2 -4
Apr-2 -6
Apr-2 -8
Apr-2 9
我需要range: <=4
,>4 to <8
和>= 8
显示计数,然后按列显示分组。像这样:
Day <=4 >4 & <8 >= 8
--------------------------------
Apr-1 3 1 1
Apr-2 3 0 1
我用awk uniq
进行了一些测试和研究......但我没有得到任何结果
谢谢!
答案 0 :(得分:0)
awk '
{days[$1] = 1}
$2 <= 4 {a[$1]++}
4 < $2 && $2 < 8 {b[$1]++}
$2 >= 8 {c[$1]++}
END {
OFS="\t";
print "Day","<=4", "4<x<8", ">=8";
PROCINFO["sorted_in"] = "@ind_str_asc";
for (day in days)
print day, a[day]+0, b[day]+0, c[day]+0
}
' <<END | column -t
Apr-1 -4
Apr-1 -2
Apr-1 -5
Apr-1 5
Apr-1 95
Apr-2 -4
Apr-2 -6
Apr-2 -8
Apr-2 9
END
Day <=4 4<x<8 >=8
Apr-1 3 1 1
Apr-2 3 0 1
在打印时向值添加零的原因是空值(例如Apr-2 4&lt; x&lt; 8)将显示为空字符串。当通过添加零强制进入数字上下文时,它们显示为0。