Linux/Unix系统下的基础文本处理命令

Linux/Unix系统的文本处理命令之所以强大,在于它们的组合性和效率。这些命令通常遵循"做一件事并做好"的Unix哲学,每个工具专注于特定功能,通过管道机制灵活组合。

核心查看命令

  • cat - 连接并显示文件全部内容,也可合并多个文件:cat file1 file2 > combined.txt
  • less / more - 分页查看大文件,less功能更强(支持向前翻页、搜索):less huge_log.log
  • head - 查看文件开头,可指定行数:head -n 20 data.csv(看前20行)
  • tail - 查看文件末尾,实时监控:tail -f access.log(持续追踪日志变化)

搜索与过滤

  • grep - 模式匹配搜索,正则表达式支持:grep -r "error" ./logs/(递归搜索含"error"的行)
  • cut - 按字段或字符切割:cut -d',' -f1,3 data.csv(以逗号分隔,取第1、3列)
  • awk - 文本处理语言,支持复杂逻辑:awk '{print $1,$3}' file.txt(打印第1、3列)
  • sed - 流编辑器,批量替换/删除:sed 's/old/new/g' file.txt(全局替换)

统计与排序

  • wc - 统计信息:wc -l file.txt(只统计行数)
  • sort - 文本排序:sort -n -k2 data.txt(按第2列数值排序)
  • uniq - 去重统计:sort file.txt | uniq -c(先排序再统计重复次数)

实战组合示例

数据清洗管道cat data.csv | grep -v "^#" | cut -d',' -f1-3 | sort | uniq > cleaned.txt

  • 过滤注释行 → 提取前3列 → 排序 → 去重 → 保存

日志分析grep "ERROR" app.log | awk '{print $4}' | sort | uniq -c | sort -rn

  • 找错误行 → 提取第4列(如时间) → 统计重复 → 按频率降序

这些命令的学习曲线虽然初期有些陡峭,但一旦掌握,处理文本数据的效率会大幅提升,特别是处理GB级文件时,比GUI工具快几个数量级。

相关推荐
枕星而眠1 天前
Linux 四大进程/线程同步锁详解:互斥锁、读写锁、条件变量、文件锁
linux·c语言·后端·ubuntu·学习方法
砍材农夫1 天前
物联网 基于netty构建mqtt协议规范(遗嘱与保留消息)
java·开发语言·物联网·netty
DFT计算杂谈1 天前
KPROJ编译教程
java·前端·python·算法·conda
重生之我是Java开发战士1 天前
【笔试强训】Week5:空调遥控, kotor和气球,走迷宫,主持人调度II,体操队形,二叉树的最大路径和,排序子序列,消减整数
java·算法·动态规划
L、2181 天前
CANN调优工具链全景:从profiler到tensorboard的完整观测体系
linux·运维·服务器·深度学习
郑重其事,鹏程万里1 天前
表达式计算器(mvel2)
java
其实防守也摸鱼1 天前
软件安全与漏洞--软件安全编码
java·前端·网络·安全·网络安全·web·工具
筠筠喵呜喵1 天前
【文档翻译】QNX Neutrino RTOS 7.1用户手册 - 第五章 文件操作
unix
888CC++1 天前
栈上分配 VS 堆分配 核心区别
java·开发语言·jvm
艾利克斯冰1 天前
Java面试题汇总
java