linux sed 命令

sed (Stream Editor)

核心功能:编辑/替换/删除。

它是一个流编辑器,主要用于对文本进行逐行的非交互式修改(如批量替换、删除特定行)。

特点:默认不会直接修改原文件(除非加 -i),而是将结果输出到屏幕。

口诀:"我要怎么修改文本"。

参数 说明 示例

-n 静默模式。只打印被命令处理过的行 (通常配合 p 使用) sed -n '5p' file (只打印第5行)

-i 就地修改 (In-place)。直接修改原文件 (慎用!) sed -i 's/old/new/g' file

-e 允许多个编辑命令 sed -e 's/a/b/' -e 's/c/d/' file

s 替换 (Substitute)。语法:s/旧/新/标志 s/root/admin/

d 删除 (Delete) 行 3d (删除第3行)

p 打印 (Print) 行 p

g 全局替换 (Global)。一行中所有匹配项都替换,否则只换第一个 s/old/new/g

经典用例

1. 将文件中的所有的 "foo" 替换为 "bar" (仅输出,不修改文件)

sed 's/foo/bar/g' file.txt

2. 直接修改文件 (备份原文件为 .bak)

sed -i.bak 's/foo/bar/g' file.txt

3. 删除文件中的空行

sed '/^$/d' file.txt

4. 删除第 10 行到第 20 行

sed '10,20d' file.txt

5. 只在包含 "ERROR" 的行中进行替换

sed '/ERROR/ s/warning/critical/g' log.txt

6. 在每一行的末尾添加一个逗号

sed 's/$/,/' file.txt

相关推荐
无足鸟ICT7 小时前
【RHCA+】vmstat命令(监控系统资源)
linux·服务器
垆边人似月.7 小时前
RDMA 文件传输踩坑(五):READY 发送成功后,为什么出现 Work Request Flushed Error?
服务器·网络·tcp/ip
闪亮的路灯7 小时前
Linux 安装mqtt服务mosquitto
linux·运维·服务器
HideF7 小时前
nmcli
linux·服务器·网络
qetfw8 小时前
UOS DHCP Relay:跨网段分配与 IP、DNS、网关验证
linux·服务器·网络·tcp/ip·uos
明航咨询-陈老师9 小时前
ITSS运行维护服务能力成熟度认证技术纵深:标准模型、等级路径、2026审核趋势与CS/CMMI对比
服务器·数据库·cmmi
szxinmai主板定制专家10 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
缓慢更新10 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
叼烟扛炮10 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong10 小时前
Linux 有两个 “版本“
linux·发行版·内核版本