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

相关推荐
wbs_scy2 小时前
Linux 进程间通信之管道基础解析 —— 匿名管道的原理与实现
linux·运维·服务器
牛马鸡niumasi2 小时前
Linux: zip/tar/scp
linux
无限进步_2 小时前
深入解析C++容器适配器:stack、queue与deque的实现与应用
linux·开发语言·c++·windows·git·github·visual studio
IMPYLH2 小时前
Linux 的 basename 命令
linux·运维·服务器·ssh·bash
EnCi Zheng2 小时前
Linux基础技术专栏
linux·运维·服务器
糟糕喔2 小时前
k8s运维-亲和(5)
运维·容器·kubernetes
淮北4942 小时前
linux下终端不动,检测进程的状态
linux·运维·服务器
芥子沫2 小时前
有声书应用Audiobookshelf:Docker一键部署教程和使用指南
运维·docker·容器
初圣魔门首席弟子2 小时前
bug2026.03.18
linux·服务器·windows