当前位置: 首页 > article >正文

linux 命令sed

简介

sed(Stream Editor)是 Linux 中强大的流式文本处理工具,支持正则表达式,常用于文本替换、删除、插入等操作。以下是 sed 的核心用法和实用示例:

基础语法

sed [选项] '指令' 文件
sed [选项] -e '指令1' -e '指令2' 文件  # 多个指令
sed [选项] -f 脚本文件 文件            # 从文件读取指令

常用选项

选项说明
-n仅输出处理后的行(需配合 p 指令)
-i直接修改原文件(谨慎使用)
-e指定多个编辑指令
-r 或 -E启用扩展正则表达式(简化语法)

核心操作指令

基本替换

sed 's/apple/orange/' file.txt     # 每行第一个 apple → orange
sed 's/apple/orange/g' file.txt    # 全局替换(所有 apple → orange)

删除行:d 

sed '/^$/d' file.txt

sed '/error/d' file.txt            # 删除包含 error 的行
sed '5,10d' file.txt               # 删除第 5-10 行

插入/追加行:i\ 和 a\

sed '3i\插入内容' file.txt         # 在第3行前插入

在行后追加

sed '/pattern/a\追加内容' file.txt  # 在匹配行后追加

注意事项

  1. 转义特殊字符:若替换内容含 /&\ 等,需用 \ 转义。

  2. 贪婪匹配sed 默认贪婪匹配,使用 .*? 需谨慎(可用 [^ ]* 限制)。

  3. 跨平台差异:macOS 的 sed 与 GNU sed 存在差异(如 -i 必须指定备份后缀)。


http://www.kler.cn/a/577796.html

相关文章:

  • QT中使用C++调用 python脚本
  • 驱动开发系列45 - Linux 显卡KMD驱动代码分析(六)- 显卡驱动与OS接口
  • 小迪安全-27-php开发,tp框架,路由访问,对象操作,内置过滤,核心漏洞
  • 2.2.1 网络原理-posix api
  • #9 【code】实现扩散模型的一个jupyter notebook
  • PX4中的DroneCAN的实现库Libuavcan及基础功能示例
  • 【Hadoop】什么是Zookeeper?如何理解Zookeeper?
  • 记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)
  • Dubbo+Zookeeper
  • 从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(十一) 实现服务端和客户端socketio 连接
  • 金融合规测试:金融系统稳健运行的“定海神针“
  • 物联网通过数字孪生技术实现设备状态的实时仿真和优化
  • 每日一练之移除链表元素
  • spring IOC(实现原理)
  • 基于自定义Tomcat实现资源访问的完整指南
  • 探索React:构建现代前端应用的强大框架
  • 1-1 驱动开发HelloWorld
  • 代码托管平台对比分析:Gitee与GitLab
  • SpringBoot-模拟SSE对话交互
  • 如何在PHP中实现有效的日志记录