Lazy loaded imageLinux sed 工具笔记

type
status
date
slug
summary
tags
category
icon
password
comment
sed(Stream EDitor) 是用于按行流式处理文本的编辑器,适合批量替换、插入、删除、筛选等操作。它既能处理文件,也能在管道中处理其它命令的输出;与 grep/awk 组合非常强大。

1) 基本语法(Basic command)

  • 常用选项
    • n:抑制(安静)模式——默认不打印,仅显式 p 时输出
    • e 'script':在命令行直接指定脚本(可多次)
    • f file.sed:从脚本文件读取命令
    • i[SUFFIX]原地编辑(可带备份后缀;macOS 常写 i ''
    • E(BSD/macOS)/ r(GNU):启用扩展正则(ERE)
  • 脚本结构
    • 地址(可选):行号/范围/正则(如 1,10/start/,/end/
    • 命令p(打印) d(删除) s(替换) a(追加) i(插入) c(整行替换) …

1.1 替换文本(单处 / 全局)

1.2 打印 / 删除 指定行

1.3 按内容匹配

1.4 指定列(示例由其它命令生成列)


2) 工作机制 & 正则

  • 逐行读取 → 匹配地址/模式 → 执行命令 → 输出
  • BRE/ERE:GNU 缺省 BRE;E(BSD)/r(GNU) 开启 ERE
  • 锚点^ 行首、$ 行尾
  • 分组与反向引用
    • 替换中的特殊符号& 代表整个匹配;\1 \2 … 为分组

    3) 常用操作(整理你给的示例 + 强化)

    3.1 条件/范围

    3.2 设置分隔符/全局替换

    3.3 原地修改(谨慎)

    3.4 多命令/脚本文件

    3.5 插入/追加/整行替换

    3.6 按匹配追加/插入

    3.7 文件末尾追加

    3.8 追加多行(用反斜杠续行)


    4) 常用一览(Cheat Sheet)


    5) Advanced Tips

    • 可移植性(GNU vs BSD/macOS)
      • ERE:GNU 用 r,BSD/macOS 用 E
      • 原地:GNU 允许 i 无参数,BSD/macOS 需要 i ''
    • 性能
      • 大文件处理前,可设 LC_ALL=C 加速基于字节的匹配:
        • LC_ALL=C sed -n '/pattern/p' big.txt
    • 分隔符选择
      • s||| 可避免替换路径时的过度转义:s|/old/path|/new/path|g
    • 与其它工具组合
      • 预过滤用 grep,复杂列/聚合交给 awksed 负责模式编辑与小改动
    • 多平台换行
      • 处理 Windows 文本可先:sed -E 's/\r$//' file.txt(去 CR)

    6) Problems & Solutions

    • 问题:正则不起作用或过度转义
      • 解决:使用 E/-r 启用 ERE;替换分隔符改为 |;检查 \( \) 是否在 BRE/ERE 下匹配
    • 问题:原地失败(macOS)
      • 解决:使用 i '';或先输出到临时文件再 mv 覆盖
    • 问题:只替换每行第 N 次出现
      • 解决:s/old/new/2 只替换第2次出现;g 为全部
    • 问题:跨行需求
      • 解决:sed 以行为单位;复杂跨行逻辑可考虑 awk/perl/python

    7) 使用场景(你给的案例整合)

    • 文件处理
      • 日志分析
        • 批量替换
          • 与管道结合

            8) Learning Resources

            1. GNU sed Manual(权威文档)
            1. The Grymoire sed 教程(实践友好)
            1. “sed one-liners” 速查(经典技巧集合)
            1. Stack Overflow sed 标签 Wiki(常见坑与最佳实践)
            Prev
            Linux grep 工具笔记
            Next
            Linux awk 工具笔记
            Loading...
            Article List
            Evan の Logbook
            ✨ Updates
            🎨 Style Guide
            🧠 Creative Resources
            🗒️ Mind Notes
            🧭 Knowbase
            📘 SOPs
            🩺 Medical Research
            🛠️ Tech Chronicles
            💰 Fortune Blueprint
            📈 R Visionary
            📊 Statistics
            🖼️ BioVis