博客
关于我
linux sed 批量替换字符串
阅读量:802 次
发布时间:2023-02-01

本文共 1293 字,大约阅读时间需要 4 分钟。

在Linux系统下,如果需要批量替换多个文件中包含的特定字符串,可以利用sed命令实现。这样不仅高效,而且避免了逐个文件操作的繁琐,适合对多个文件进行统一修改的场景。

以下是实现批量替换的命令示例:

sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在目录`

例如,若想将charset=gb2312替换为charset=UTF-8,可以执行以下命令:

sed -i "s/charset=gb2312/charset=UTF-8/g" `grep charset=gb2312 -rl /www`

命令参数说明:

  • -i:表示inplace edit,即在文件原地修改,不生成新的文件。
  • g:表示全局匹配,能够替换文件中所有匹配的内容。
  • grep 原字符串 -rl 所在目录grep命令用于查找指定字符串,-r表示递归搜索子目录,-l输出匹配文件的名字,所在目录替换为实际需要搜索的目录。

这一命令组合功能强大,适合对多个文件进行字符串替换,但在操作前请确保有备份,避免不可逆操作。

Sed命令常用示例

1. 替换字符串

将所有01替换为Ab

sed 's/01/Ab/g' test_sed

2. 替换行首部分隔符

192.168.0.1扩展为192.168.0.1localhost

sed 's/192.168.0.1/192.168.0.1localhost/g' example

3. 替换带标记组合

利用标记组合(\w)ableAb-c

sed -n 's/(\w)able/Ab-\1/g' example

4. 删除特定行

删除包含test的所有行:

sed '/test/d' example

5. 插入新内容

在匹配行后插入一行注释:

sed '/test/i\#这是要替换的行' example

6. 追加新内容

将匹配行的结果追加到文件中:

sed -n '/test/w file' example

7. 分批处理

结合-n标记只输出替换结果:

sed -n 's/2024-01-01/2024-12-31/g' yearly-calendar.csv

8. 表达式传递(推荐)

使用-expression选项:

sed --expression='s/10/100' file

这种写法尤其适合复杂的正则表达式。

综合操作示例

删除特定范围的内容

删除从第3行到第5行的内容:

sed '3d;4d;5d' file

或者:

sed '3d;4d;5d' file

直接替换为另一个字符串

全部替换,把test变成winner

sed 's/test/winner/g' file

多步操作

结合多个命令进行处理:

sed -e '1d;2d' -e 's/a/b' file

这会首先删除文件的前两行,然后将所有a替换为b

综上所述,sed命令在文件操作中非常强大,能够满足从简单字符串替换到复杂文文件处理等多种需求。如果在实际使用中发现有特殊字符或正则表达式需要特别注意,可以参考man手册获取更多详细信息。

转载地址:http://snwfk.baihongyu.com/

你可能感兴趣的文章
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx如何实现图片防盗链
查看>>
Nginx学习总结(12)——Nginx各项配置总结
查看>>
Nginx学习总结(13)——Nginx 重要知识点回顾
查看>>
Nginx学习总结(14)——Nginx配置参数详细说明与整理
查看>>
Nginx学习总结(15)—— 提升 Web 应用性能的十个步骤
查看>>
Nginx学习总结(8)——Nginx服务器详解
查看>>
nginx学习笔记002---Nginx代理配置_案例1_实现了对前端代码的方向代理_并且配置了后端api接口的访问地址
查看>>
Nginx安装SSL模块 nginx: the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx
查看>>
nginx安装stream模块配置tcp/udp端口转发
查看>>
nginx安装Stream模块配置tcp/udp端口转发
查看>>
Nginx安装与常见命令
查看>>
nginx安装与配置
查看>>
Nginx安装及配置详解
查看>>
nginx安装并配置实现端口转发
查看>>
nginx安装配置
查看>>
Nginx实战之1.1-1.6 Nginx介绍,安装及配置文件详解
查看>>
Nginx实战经验分享:从小白到专家的成长历程!
查看>>
nginx实现二级域名转发
查看>>
Nginx实现动静分离
查看>>