在linux中用sed在每行行首添加字符需使用s命令配合^锚点,如sed 's/^/#/' file.txt;加-i可修改原文件,-i.bak可备份;支持多字符、缩进、序号及跳过空行等场景。

在 Linux 中,用 sed 在每行行首添加字符,核心是使用替换命令 s,配合锚点 ^(匹配行首),将空字符串替换成目标字符或字符串。
基础语法:在每行开头加一个字符
例如,在每行开头加 #:
说明:^ 精确匹配行首位置,s/^/#/ 表示“把行首替换成 #”,实际效果就是在每行最前面插入 #。注意这不会修改原文件,仅输出到终端。
保存修改到原文件
加 -i 选项直接编辑文件:
若想备份原文件(推荐),可加后缀:
执行后生成 file.txt.bak 备份,file.txt 被修改。
添加多个字符或字符串
只需把替换内容写全,比如加 --> (注意空格):
常见需求举例:
- 加缩进:
sed 's/^/ /' file.txt(4个空格) - 加序号前缀:
sed = file.txt | sed 'N;s/ /./'(配合行号,非纯 s/^/) - 只处理非空行:
sed '/^$/!s/^/#/' file.txt(跳过空行)
注意事项
^ 在基本正则中无需转义,但若用了 -E(扩展正则),仍保持原写法;避免写成 s/^(.*)/#\1/——冗余且易错;Mac 的 sed 语法略有不同,建议用 gsed(通过 brew 安装)保持一致。











