BusyBox文本处理与过滤命令

涵盖 搜索匹配、行列处理、流编辑、数据提取、排序去重、字符转换、输出分流 等 7 大类别,总计 38 个核心命令,每条命令均提供全名、功能说明、关键参数及实用示例(基于 BusyBox v1.36)。


🔍 一、搜索与匹配工具

  1. 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:固定字符串匹配(不支持正则)
  2. 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 参数)  
      

📊 二、行列处理工具

  1. 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 个字符  
      
  2. head (Output First Part)

    • 功能:显示文件开头部分。
    • 关键参数
      • -n 10:显示前 10 行(默认)
      • -c 100:显示前 100 字节
    • 示例
      busybox head -n 5 access.log               # 查看日志前 5 行  
      
  3. tail (Output Last Part)

    • 功能:显示文件末尾部分,支持实时追踪。
    • 关键参数
      • -n 10:显示最后 10 行
      • -f:实时追踪文件更新(日志监控)
    • 示例
      busybox tail -f /var/log/messages         # 实时监控日志新增内容  
      

✏️ 三、流编辑器与处理器

  1. 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  # 多分隔符处理  
      

🔄 四、排序与去重工具

  1. sort (Sort Lines)

    • 功能:对文本行排序。
    • 关键参数
      • -n:按数值排序
      • -r:逆序排序
      • -u:去重(唯一行)
      • -k 2:按第二列排序
    • 示例
      busybox sort -nrk 3 data.txt               # 按第三列数值逆序排序  
      
  2. uniq (Report/Filter Duplicate Lines)

    • 功能:过滤相邻重复行。
    • 关键参数
      • -c:统计重复次数
      • -d:仅显示重复行
      • -u:仅显示唯一行
    • 示例
      busybox sort file.txt | busybox uniq -c    # 统计每行出现次数  
      

🔠 五、字符转换工具

  1. 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 换行符  
      
  2. fmt (Simple Text Formatter)

    • 功能:格式化文本为等宽段落。
    • 示例
      busybox fmt -w 80 long_text.txt            # 限制每行 80 字符  
      

📤 六、输出分流工具

  1. tee (Redirect to Multiple Files)
    • 功能:同时输出到屏幕和文件。
    • 关键参数
      • -a:追加而非覆盖
    • 示例
      busybox dmesg | busybox tee -a kernel.log  # 保存内核日志并显示在屏幕  
      

💎 使用场景速查表

场景推荐命令组合示例
日志错误分析grep + sort + uniqgrep "ERROR" app.log | sort | uniq -c
数据字段提取cut / awkcut -d, -f2 data.csv
实时日志监控tail -f + greptail -f access.log | grep "404"
文本批量替换sedsed 's/old/new/g' *.txt
统计词频tr + sort + uniqtr ' ' '\n' < text | sort | uniq -c
多文件合并去重cat + sort + uniqcat file1 file2 | sort | uniq > merged

命令总计:38 个(覆盖 BusyBox 文本处理核心命令)
完整列表可通过 busybox --list 查看,或参考 BusyBox 官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值