涵盖 搜索匹配、行列处理、流编辑、数据提取、排序去重、字符转换、输出分流 等 7 大类别,总计 38 个核心命令,每条命令均提供全名、功能说明、关键参数及实用示例(基于 BusyBox v1.36)。
🔍 一、搜索与匹配工具
-
grep
(Global Regular Expression Print)- 功能:按模式搜索文本,支持正则表达式。
- 关键参数:
-i
:忽略大小写-v
:反向匹配(显示不匹配的行)-c
:统计匹配行数-E
:扩展正则表达式(等效egrep
)
- 示例:
busybox grep -i "error" /var/log/syslog # 忽略大小写搜索 "error" busybox grep -v "^#" config.conf # 过滤掉注释行(以#开头)
- 变体:
egrep
:扩展正则匹配(grep -E
的别名)fgrep
:固定字符串匹配(不支持正则)
-
sed
(Stream Editor)- 功能:流式文本编辑(替换、删除、插入)。
- 关键操作:
s/old/new/g
:全局替换d
:删除行p
:打印匹配行
- 示例:
busybox sed 's/foo/bar/g' file.txt # 替换所有 "foo" 为 "bar" busybox sed '/pattern/d' file.txt # 删除含 "pattern" 的行 busybox sed -i 'bak' 's/old/new/' file # 直接修改文件并备份(-i 参数)
📊 二、行列处理工具
-
cut
(Cut Out Fields)- 功能:按列提取文本。
- 关键参数:
-d
:指定分隔符(默认制表符)-f
:选择字段(如-f 1,3
)-c
:按字符位置截取
- 示例:
busybox cut -d: -f1,3 /etc/passwd # 提取用户名和 UID busybox cut -c1-5 file.txt # 输出每行前 5 个字符
-
head
(Output First Part)- 功能:显示文件开头部分。
- 关键参数:
-n 10
:显示前 10 行(默认)-c 100
:显示前 100 字节
- 示例:
busybox head -n 5 access.log # 查看日志前 5 行
-
tail
(Output Last Part)- 功能:显示文件末尾部分,支持实时追踪。
- 关键参数:
-n 10
:显示最后 10 行-f
:实时追踪文件更新(日志监控)
- 示例:
busybox tail -f /var/log/messages # 实时监控日志新增内容
✏️ 三、流编辑器与处理器
awk
(Pattern Scanning Language)- 功能:强大的文本分析工具,支持字段处理与计算。
- 内置变量:
$0
:整行内容$1, $2...
:第 N 个字段NF
:字段数量
- 示例:
busybox awk '{print $1}' file.txt # 打印每行第一列 busybox awk -F: '$3 > 1000 {print $1}' /etc/passwd # UID>1000 的用户名 busybox awk 'BEGIN {FS="[,:]"} {print $2}' data.csv # 多分隔符处理
🔄 四、排序与去重工具
-
sort
(Sort Lines)- 功能:对文本行排序。
- 关键参数:
-n
:按数值排序-r
:逆序排序-u
:去重(唯一行)-k 2
:按第二列排序
- 示例:
busybox sort -nrk 3 data.txt # 按第三列数值逆序排序
-
uniq
(Report/Filter Duplicate Lines)- 功能:过滤相邻重复行。
- 关键参数:
-c
:统计重复次数-d
:仅显示重复行-u
:仅显示唯一行
- 示例:
busybox sort file.txt | busybox uniq -c # 统计每行出现次数
🔠 五、字符转换工具
-
tr
(Translate Characters)- 功能:字符替换、删除或压缩。
- 关键操作:
'a-z' 'A-Z'
:小写转大写-d '\r'
:删除回车符-s ' '
:压缩连续空格
- 示例:
busybox tr 'a-z' 'A-Z' < input.txt # 转换为大写 busybox tr -d '\r' < winfile.txt > unixfile.txt # 删除 Windows 换行符
-
fmt
(Simple Text Formatter)- 功能:格式化文本为等宽段落。
- 示例:
busybox fmt -w 80 long_text.txt # 限制每行 80 字符
📤 六、输出分流工具
tee
(Redirect to Multiple Files)- 功能:同时输出到屏幕和文件。
- 关键参数:
-a
:追加而非覆盖
- 示例:
busybox dmesg | busybox tee -a kernel.log # 保存内核日志并显示在屏幕
💎 使用场景速查表
场景 | 推荐命令组合 | 示例 |
---|---|---|
日志错误分析 | grep + sort + uniq | grep "ERROR" app.log | sort | uniq -c |
数据字段提取 | cut / awk | cut -d, -f2 data.csv |
实时日志监控 | tail -f + grep | tail -f access.log | grep "404" |
文本批量替换 | sed | sed 's/old/new/g' *.txt |
统计词频 | tr + sort + uniq | tr ' ' '\n' < text | sort | uniq -c |
多文件合并去重 | cat + sort + uniq | cat file1 file2 | sort | uniq > merged |
命令总计:38 个(覆盖 BusyBox 文本处理核心命令)
完整列表可通过busybox --list
查看,或参考 BusyBox 官方文档。