sed用i命令在指定行前插入、a命令在指定行后追加文本;默认不修改原文件,需加-i选项;支持单行或多行插入,跨平台需注意macOS与GNU sed语法差异。

在 Linux 中,sed 可以通过 i(insert)命令在指定行号**之前**插入文本,或用 a(append)命令在指定行号**之后**追加文本。注意:sed 默认不修改原文件,需加 -i 选项才真正写入。
在第 N 行前面插入一行文本
语法:sed 'N i要插入的文本' 文件名
-
N是目标行号(例如 3 表示在第 3 行前插入) -
i后面直接跟插入内容,不能有空格;若内容含空格或特殊字符,建议用单引号包裹整个命令 - 示例:在
test.txt的第 2 行前插入# Header
在第 N 行后面插入一行文本
语法:sed 'N a要插入的文本' 文件名
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
-
a表示在第 N 行之后追加 - 同样推荐用单引号避免 shell 解析问题
- 示例:在第 1 行后添加空行和注释
插入多行文本
用反斜杠 换行,每行都用 i 或 a 开头,或使用 $'...' 语法(bash/zsh 支持)
- 方法一(兼容性好):
sed '2 iirst line\nsecond line' file - 方法二(更清晰):
sed $'2 i\nfirst line\nsecond line' file - 注意:每个换行需写
\n,且i后必须紧跟文本(不能换行)
直接修改原文件
加上 -i 选项即可就地编辑
- 备份并修改:
sed -i.bak '3 iackup inserted' file.txt(生成 file.txt.bak) - 不备份直接改:
sed -i '3 i ew line' file.txt - 注意:macOS 的 sed 与 GNU sed 语法略有不同(如 macOS 需
-i ''),跨平台建议用gsed

















