2.4 KiB
2.4 KiB
文本分析
Linux 日志分析与数据整理的常用命令。
1. 命令概览
| 命令 | 用途 |
|---|---|
wc |
统计行数、单词数、字节数 |
sort |
文本排序 |
uniq |
去重、统计重复次数 |
cut |
按列提取 |
这些命令常通过管道组合使用,是文本处理的基础工具。
2. wc - 文本统计
常用选项
| 选项 | 说明 |
|---|---|
-l |
统计行数 |
-w |
统计单词数 |
-c |
统计字节数 |
示例
# 统计文件行数
wc -l access.log
3. sort - 文本排序
默认输出到标准输出,不会修改原文件。
常用选项
| 选项 | 说明 |
|---|---|
-n |
按数值排序 |
-h |
按人类可读格式排序(1K、2M) |
-u |
排序后去重 |
-k |
按第几列排序 |
-t |
指定分隔符 |
-r |
逆序排序 |
-R |
随机排序 |
示例
sort -n scores.txt # 按数值排序
sort -h disk_usage.txt # 按人类可读格式排序
4. uniq - 去重与统计
只能去除相邻重复行,需先配合
sort使用。
常用选项
| 选项 | 说明 |
|---|---|
-c |
统计每行重复次数 |
-d |
只显示重复行 |
-u |
只显示不重复行 |
示例
# 统计高频内容
sort access.log | uniq -c | sort -nr | head
5. cut - 按列提取
常用选项
| 选项 | 说明 |
|---|---|
-d |
指定分隔符 |
-f |
按字段提取 |
-c |
按字符位置提取 |
示例
# 提取第一列和第三列(以冒号分隔)
cut -d: -f1,3 /etc/passwd
6. 实战组合
统计访问次数最多的来源
cut -d" " -f1 access_log | sort | uniq -c | sort -nr | head -3
执行流程:
cut→ 提取第一列sort→ 排序(让相同内容相邻)uniq -c→ 统计重复次数sort -nr→ 按数字逆序head -3→ 取前 3 条
统计文件行数
wc -l file.txt
获取唯一用户列表
cut -d: -f1 /etc/passwd | sort -u
7. 小结
| 场景 | 推荐命令 |
|---|---|
| 统计数量 | wc |
| 排序 | sort |
| 去重/统计重复 | sort | uniq |
| 按列提取 | cut |
| 多步分析 | 管道组合 |
掌握这些命令,可高效处理各类日志与文本数据。