博客
关于我
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/

你可能感兴趣的文章
NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
查看>>
NIFI大数据进阶_离线同步MySql数据到HDFS_说明操作步骤---大数据之Nifi工作笔记0028
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南002---大数据之Nifi工作笔记0069
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim教程【十二】
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO_通道之间传输数据
查看>>
NIO三大组件基础知识
查看>>
NIO与零拷贝和AIO
查看>>
NIO同步网络编程
查看>>