sed 文本编辑速查表
把 sed 最常用的文本编辑操作整理成速查表,批量修改文件时对照查。
返回 系统与运维替换 Substitute 8
sed 's/old/new/' file替换每行第一个匹配
sed 's/old/new/g' file替换所有匹配(全局)
sed 's/old/new/2' file替换每行第二个匹配
sed 's/old/new/I' file忽略大小写匹配
sed -i 's/old/new/g' file直接修改文件(原地编辑)
sed -i.bak 's/old/new/g' file修改并备份原文件
sed 's/\/path\/old/path\/new/g' file替换路径中的斜杠需转义
sed 's|old|new|g' file用 | 分隔符避免转义斜杠
删除 Delete 7
sed '5d' file删除第 5 行
sed '5,10d' file删除第 5-10 行
sed '/pattern/d' file删除匹配行
sed '/^$/d' file删除空行
sed '/^#/d' file删除注释行
sed '$d' file删除最后一行
sed '1d;$d' file删除第一行和最后一行
插入与追加 Insert & Append 5
sed '5i\new text' file在第 5 行前插入
sed '5a\new text' file在第 5 行后追加
sed '/pattern/i\new text' file在匹配行前插入
sed '/pattern/a\new text' file在匹配行后追加
sed '5i\line1\nline2' file插入多行
打印 Print 5
sed -n '5p' file只打印第 5 行
sed -n '5,10p' file只打印第 5-10 行
sed -n '/pattern/p' file只打印匹配行
sed -n '1p;$p' file打印第一行和最后一行
sed 's/old/new/p' file替换并打印修改的行
正则表达式 Regular Expression 7
sed 's/^prefix/new/' file匹配行首
sed 's/suffix$/new/' file匹配行尾
sed 's/\<word\>/new/g' file匹配单词边界
sed 's/[0-9]/X/g' file匹配数字
sed 's/[^0-9]/X/g' file匹配非数字
sed 's/\(pattern\)/\1/g' file捕获组与反向引用
sed -E 's/(old)/\1-new/g' file扩展正则(-E 或 -r)
多行操作 Multi-line 5
sed ':a;N;$!ba;s/\n//g' file删除所有换行符
sed 'N;s/\n/ /' file合并相邻两行
sed '/start/,/end/s/old/new/g' file在范围内替换
sed '/start/,/end/d' file删除范围内行
sed '/start/,/end/p' file打印范围内行
💡 提示
- sed -i 直接修改文件前先备份(-i.bak),或先不加 -i 预览结果。
- sed 默认使用 BRE(基本正则),+、?、| 需转义或用 -E 启用 ERE。
- macOS 的 sed -i 必须跟备份后缀(如 -i ""),Linux 可直接 -i。