wiki/运维/Linux/笔记/11.文本分析.md
2026-04-08 19:40:00 +08:00

2.5 KiB

1、文本分析概览

Linux 中很多日志分析和数据整理工作,都依赖文本分析命令。常见工具包括:

  • wc:统计文本信息
  • sort:排序
  • uniq:去重或统计重复次数
  • cut:按列提取内容

它们经常和管道一起使用,是文本处理的基础组合。

2、wc

wc 用于统计文本的行数、单词数、字节数等。

2.1 常见选项

  • -l:统计行数
  • -w:统计单词数
  • -c:统计字节数

2.2 示例

wc -l access.log

用于统计文件共有多少行。

3、sort

sort 用于对文本内容进行排序,默认输出到标准输出,不会直接修改原文件。

3.1 常见选项

  • -R:随机排序
  • -n:按数值大小排序
  • -h:按人类可读格式排序,例如 1K2M
  • -u:排序后去重
  • -r:逆序排序

3.2 示例

sort -n scores.txt
sort -h disk_usage.txt

4、uniq

uniq 用于去除相邻重复行,因此通常会先配合 sort 使用。

4.1 常见选项

  • -c:统计每行重复次数
  • -d:只显示重复行
  • -u:只显示不重复行

4.2 示例

sort access.log | uniq -c | sort -nr | head

这个组合常用于统计高频内容。

5、cut

cut 用于按列或按字符位置提取文本。

5.1 常见选项

  • -d:指定分隔符
  • -c:按字符位置提取
  • -f:按字段提取

5.2 示例

按冒号分隔提取 /etc/passwd 的第一列和第三列:

cut -d: -f1,3 /etc/passwd

6、常见组合用法

6.1 统计访问次数最多的请求来源

cut -d" " -f1 access_log | sort | uniq -c | sort -nr | head -3

这条命令的思路是:

  • cut 取出第一列
  • sort 排序
  • uniq -c 统计重复次数
  • 再按数字逆序排序
  • head 取前 3 条

6.2 统计某个文件有多少行

wc -l file.txt

6.3 查看唯一用户列表

cut -d: -f1 /etc/passwd | sort -u

7、实战建议

  • 只做统计:优先考虑 wc
  • 只做排序:优先考虑 sort
  • 去重或重复次数统计:优先考虑 sort | uniq
  • 按列提取:优先考虑 cut
  • 一旦涉及多步分析,优先用管道把几个命令串起来

8、小结

  • wc 用于统计
  • sort 用于排序
  • uniq 用于去重和统计重复行
  • cut 用于按列抽取文本
  • 这几个命令经常组合使用,是日志分析和文本整理的基础工具