2.5 KiB
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:按人类可读格式排序,例如1K、2M-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用于按列抽取文本- 这几个命令经常组合使用,是日志分析和文本整理的基础工具