
Linux 文本处理之 sed
sed (Stream Editor, 流编辑器) 是 Linux 中的 文本处理工具, 常用于对文本进行 查找、替换、删除、插入、提取等批处理操作。 基本语法: sed [选项] '命令' 文件 # 或者: 命令 | sed [选项] '命令' 常用选项: 选项 说明 -n 默认 sed 会打印所有行, 使用 -n 后只会输出符合条件或被命令处理的行 -e 用于指定多条命令 -i 直接修改源文件(慎用, 建议先备份) -r 启用扩展正则表达式 (也可以用 -E) -f 从文件中读取 sed 命令 常用命令: 命令 说明 p 打印 d 删除 s/old/new/ 查找并替换 a\text 在当前行后追加一行 i\text 在当前行前插入一行 c\text 替换当前行内容 = 打印当前行号 q 处理到此行后退出 常见用法示例 打印文本 # 打印所有行: sed '' file.txt 打印匹配到 error 的行: sed -n '/error/p' file.txt # 只打印第 2 行: sed -n '2p' file.txt # 打印第 2 到第 4 行: sed -n '2,4p' file.txt 查找并替换 # 只替换每行的第一个匹配: sed 's/error/warning/' file.txt # 替换每行所有匹配: sed 's/error/warning/g' file.txt # 忽略大小写替换: sed 's/error/warning/gi' file.txt # 如果文本中有特殊字符, 如 /, 换分隔符: sed 's|/usr/local|/opt|g' file.txt # 使用变量: word="error" sed "s/$word/warning/g" file.txt # 替换并直接修改文件: sed -i 's/error/warning/g' file.txt # 直接修改文件并备份: sed -i.bak 's/error/warning/g' file.txt # 正则, 替换数字为 X: sed 's/[0-9]/X/g' file.txt 删除文本 # 删除第 2 行: sed '2d' file.txt # 删除第 2 到第 4 行: sed '2,4d' file.txt # 删除匹配 debug 的行: sed '/debug/d' file.txt # 删除所有空行: sed '/^$/d' file.txt # 删除以 # 开头的注释行: sed '/^#/d' file.txt 插入、追加、替换 # 在第 2 行前插入一行: sed '2i\This is a new line' file.txt # 在第 3 行后追加一行: sed '3a\Another new line' file.txt # 把第 2 行替换成新的内容: sed '2c\This line is replaced' file.txt


