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