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

相关推荐
张小姐的猫几秒前
【Linux】网络编程 —— 多路转接:epoll
linux·运维·网络
宋明河18 分钟前
五种 IO 模型与 select、poll、epoll 对比
linux
玄芯散人28 分钟前
【金丹·81】性能分析:你的程序慢在哪
linux·性能优化·perf
天意__33 分钟前
Linux部署Qwen轻量模型
linux·服务器·qwen
对空六课1 小时前
无头浏览器访问对跳出率的过滤规则
服务器·前端·算法·数据分析
木卫二号Coding1 小时前
第八十六篇-Strata 部署指南(Ubuntu 22.04 + Tesla V100【单卡】)
linux·运维·人工智能·ubuntu
11路没有终点1 小时前
sed 命令详解:文本编辑流处理实战
linux
linweidong1 小时前
Redis 集群故障排查与修复实战:从 Connection refused 到内存打满的七个现场
运维·数据库·redis·缓存·redis集群·运维面经·实施面经
开开心心就好1 小时前
一元二次方程求解工具,答案带详细步骤
java·服务器·开发语言·算法·pdf·ocr·perl