Linux高效文本处理:ex命令详解与实战技巧
发布时间:2026/10/28 20:31:41 锦皓数字建站

1. 为什么需要掌握ex命令在Linux系统日常工作中文本编辑是最基础也最频繁的操作之一。作为vi编辑器的底层命令集ex命令提供了比常规vi模式更精确的文本控制能力。很多新手在遇到以下场景时会束手无策需要批量修改500个分散在不同行的特定字符串要对日志文件进行条件化删除如保留含error的行在脚本中自动化执行编辑操作这些正是ex命令的用武之地。与可视化编辑不同ex采用行编辑模式通过命令组合能实现复杂文本处理。我在服务器维护中就经常用它快速清理日志、批量更新配置文件效率比手动编辑高出十倍不止。2. ex命令基础环境准备2.1 启动ex编辑器直接执行ex 文件名进入ex模式但更实用的方式是在vi中切换vi test.txt # 进入vi编辑器 : # 输入冒号进入ex命令模式2.2 模式区分要点命令模式输入:后进入光标移动到屏幕底部插入模式输入i/a/o等命令进入与vi相同可视模式按v/V/Ctrlv选择文本与vi相同提示在命令模式下按Ctrlc可取消当前输入的命令3. 核心编辑命令详解3.1 行号定位与跳转:3 # 跳转到第3行 :$ # 跳转到文件末尾 :.,5 # 选中当前行到其后5行 :% # 全文件范围相当于1,$3.2 文本增删改查:10,20d # 删除10-20行 :g/pattern/d # 删除所有匹配pattern的行 :3,8s/old/new/g # 替换3-8行的old为new :r !date # 插入系统日期实用技巧3.3 高级模式组合:g/^#/d # 删除所有注释行以#开头 :v/error/d # 删除所有不含error的行反向选择 :10,20w newfile # 将10-20行写入新文件4. 实战案例解析4.1 日志文件处理假设有nginx日志access.log需要提取特定IP的请求:g/192.168.1.100/p # 打印该IP所有记录 :v/GET/d # 删除非GET请求 :1,$!sort -u # 全文件去重排序4.2 配置文件批量修改修改SSH配置时需要注释掉特定参数:g/^PermitRootLogin/s/^/#/ # 注释所有PermitRootLogin :%s/#Port 22/Port 2222/ # 修改默认端口5. 避坑指南与技巧5.1 常见错误处理误删恢复输入:e!放弃修改重新加载范围错误先使用:1,10p预览再操作模式混淆注意提示符:和/的区别5.2 效率提升技巧:: # 重复上条ex命令 :^R # 粘贴系统剪贴板内容 :set nu # 显示行号排查时必备6. 与sed/awk的对比选择虽然sed/awk也能完成类似操作但ex的优势在于交互式即时反馈可结合vi可视化选择无需退出编辑器即可执行shell命令:!cmd建议使用场景简单编辑vi普通模式复杂批处理ex命令模式超大数据文件sed/awk流处理我在处理500MB以上日志文件时会先用grep -n定位关键行号再用ex精确编辑比直接vim打开更节省内存。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。