首页/系统/Linux 运维命令速查/sed 保持空间与多行操作
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

sed 保持空间与多行操作

sed 的进阶核心:pattern space 与 hold space 配合(h/H/g/G/x/D/N),能合并行、倒序、挤压空行、按段抽取。

Linux 运维命令速查系统更新于 2026-10-12
用途跨行/多行流编辑
空间pattern space(当前处理行)与 hold space(暂存区)
命令h 存 H 追加 g 取回 G 追加回 x 交换 N 读下一行 D 删首行重放

常用示例

常用示例
sed 'N;s/\n/ /' file           # 两行并一行(成对合并)
sed -n '1!G;h;$p' file         # 倒序输出(tac 的 sed 版)
sed '/^$/{N;/^\n$/D}' file     # 连续空行挤压成一个
sed -n '/BEGIN/,/END/p' file   # 按标记抽取区间
sed 一次看不全任意多行;真正的跨行复杂替换改用 perl -0777,别硬拼 sed。

易错点

  • D 与 d 语义不同:D 删 pattern 第一行后不读新行、重新跑脚本(挤压空行靠它);用错会多删行
  • 1!G;h;$p 这类命令顺序敏感:改任何一处结果都变,先在小样本验证再上生产

数据来源与参考

  • man 1 sed(GNU sed 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌