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

相关推荐
你好潘先生6 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
orion5717 小时前
Missing Semester Class1:course overview and introduction of shell
linux
SkyWalking中文站1 天前
认识 Horizon UI · 6/17:Trace 探索器
运维·监控·自动化运维
用户120487221611 天前
Linux驱动编译与加载
linux·嵌入式
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
火车叼位1 天前
写给初级开发者:SSL、SSH、HTTPS 与证书体系全解析
运维
vivo互联网技术1 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
用户805533698031 天前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户805533698031 天前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式