题目来源:牛客网
题解:
awk '{
if(substr($4, 2, 11) == "23/Apr/2020") temp[$1]++;
}END{
for(i in temp){
print temp[i] " " i
}
}' nowcoder.txt | sort -nr -k1
substr($4, 2, 11):
- awk默认使用空格分隔一行的各个数据;
- $4:根据日志格式可知,日期在分割后的第4项,取出第4项,整个作为源字符串;
- 2:从第2个索引位置开始(有的资料里写着substr的索引是0开始的,但又有的写是从1开始的,这里实践出是1开始的) ;
- 11:往后取出的字符串长度;
- substr(源字符串,开始索引,长度);
sort -nr -k1:
- sort:排序,-n依照数值大小排序,-r逆序, -k1按第1列排序(按指定列排序)