欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

sed 实战:文本替换、插入删除与多文件处理

时间:2026年08月12日 05:26:48 浏览:0

sed 实战:文本替换、插入删除与多文件处理


sed 是流编辑器,适合批量处理文本。


1. 替换操作


# 替换每行第一个 old 为 new
sed 's/old/new/' file.txt

# 替换所有(g)
sed 's/old/new/g' file.txt

# 替换并备份原文件(-i.bak)
sed -i.bak 's/error/warning/g' config.ini

# 使用不同分隔符(避免转义)
sed 's#/usr/local#/opt#g' paths.txt

2. 删除操作


# 删除空行
sed '/^$/d' file.txt

# 删除包含特定字符串的行
sed '/pattern/d' file.txt

# 删除第2到5行
sed '2,5d' file.txt

3. 插入与追加


# 在第3行后追加
echo 'new line' | sed '3a\new line' file.txt

# 在第3行前插入
echo 'new line' | sed '3i\new line' file.txt

4. 范围与组合


# 在指定行范围内替换
sed '10,20 s/foo/bar/g' file.txt

# 多条命令(-e)
sed -e 's/foo/bar/g' -e '/^$/d' file.txt

5. 多文件处理


# 批量修改所有 .conf 文件
find . -name "*.conf" -exec sed -i 's/port 80/port 8080/g' {} \;

6. 高级:保持空间与模式空间


可参考手册,用于复杂替换,但通常用 awk 替代。