typora/note/linux/command/日志计数排序.md

11 lines
979 B
Markdown
Raw Permalink Normal View History

2024-12-11 21:48:55 -05:00
### 总体命令
```bash
grep status=5 2023111317225316148_2023111317225316148 | grep -v "nd-membership-proxy.log.isis" | awk -F" " '{ print $17}' | sort| uniq -c | sort -k 1 -nr
```
#### 解读
- `uniq -c` : 表示合并相邻的重复记录并统计重复数。因为uniq -c 只会合并相邻的记录,所以在使用该命令之前需要先排序
- sort -k 1 -nr : 经过uniq -c 处理之后的数据格式形如"2 data"第一个字段是数字表示重复的记录数第二个字段为记录的内容。我们将对此内容进行排序。sort -k 1表示对于每行的第一个字段进行排序这里即指代表重复记录数的那个字段。因为sort命令的默认排序是按照ASCII这就会导致按从大到小进行排序时数值2会排在数值11的前面所以需要使用-n 参数指定sort命令按照数值大小进行排序。-r 表示逆序,即按照从大到小的顺序进行排序
- `head -20` : 排完序取前20行