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 必须指定备份后缀)。

相关推荐
梦想的旅途216 分钟前
自动化运营如何防封?解析 API 协议下的拟人化风控算法
运维·自动化
六点的晨曦1 小时前
VMware安装Ubuntu的记录
linux·ubuntu
AC赳赳老秦1 小时前
OpenClaw text-translate技能:多语言批量翻译,解决跨境工作沟通难题
大数据·运维·数据库·人工智能·python·deepseek·openclaw
w6100104661 小时前
CKA-2026-Service
linux·服务器·网络·service·cka
andeyeluguo1 小时前
docker总结
运维·docker·容器
w6100104661 小时前
cka-2026-etcd
运维·服务器·etcd·cka
HXQ_晴天1 小时前
castor什么时候已有的 .cdh 数据可以直接用,不需要重新从 root 转换?
linux
航Hang*2 小时前
VMware vSphere 云平台运维与管理基础——第5章:VMware vSphere 5.5 高级特性
运维·服务器·开发语言·windows·学习·虚拟化
Mapleay2 小时前
Ubuntu 源的重要性!之 libgmp-dev 无法安装
linux·服务器·windows
Benszen2 小时前
Linux容器:轻量级虚拟化革命
java·linux·运维