`

【转】Linux批量替换不同文件中的相同字符串

阅读更多

 

已验证,原文地址:http://www.cnblogs.com/turtle-fly/archive/2013/03/13/2957212.html

方法1
 
这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需要把这些资源库的url统一指定到nexus本地中央库.
手 工一个个改文件配置有点不太实际,所以google了一下,找到批量替换文件内容的好方法,命令结构如下:
find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'

下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的“http://repo1.maven.org/maven2” 替换为“http://localhost:8081/nexus/content/groups/public&”.

find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content /groups/public|g'
这里用到了Perl语言,
perl -pi -e
 
在Perl 命令中加上-e 选项,后跟一行代码,那它就会像运行一个普通的Perl 脚本那样运行该代码.
从命令行中使用Perl 能够帮助实现一些强大的、实时的转换。认真研究正则表达式,并正确地使用,将会为您省去大量的手工编辑工作。
find -name 'pom.xml' | xargs perl -pi -e 's|http://repo1.maven.org/maven2|http://localhost:8081/nexus/content/groups/public|g'
 
方法2

Linux下批量替换多个文件中的字符串的简单方法。用sed命令可以批量替换多个文件中的字符串。
用sed命令可以批量替换多个文件中的 字符串。

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

例如:我要把mahuinan替换 为huinanma,执行命令:

sed -i "s/mahuinan/huinanma/g" 'grep mahuinan -rl /www'

这是目前linux最简单的批量替换字符串命令了!
具体格式如下: 

sed -i "s/oldString/newString/g"  `grep oldString -rl /path`

实例代码:

sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl /usr/aa`
sed -i "s/大小多少/日月水火/g" `grep 大小多少 -rl ./`

方法3

在日程的开发过程中,可能大家会遇到将某个变量名修改 为另一个变量名的情况,如果这个变量是一个局部变量的话,vi足以胜任,但是如果是某个全局变量的话,并且在很多文件中进行了使用,这个时候使用vi就是 一个不明智的选择。这里给出一个简单的shell命令,可以一次性将所有文件中的指定字符串进行修改:
grep "abc" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/abc/abcde/g'
from: http://blog.zol.com.cn/1395/article_1394052.html

补充说明:
sed -i "s/oldString/newString/g"  `grep oldString -rl /path` 

对多个文件的处理可能不支持,需要用 xargs, 搞定。

变种如下:
grep oldString -rl /path | xargs sed -i "s/oldString/newString/g" 

注意

`grep oldString -rl /path`    
` 为1前边的翻引号`,引起的内容表示将该shell命令执行后的数据结果应用于该指令中,该引号不是enter 前的 '
分享到:
评论

相关推荐

    Linuxsed批量替换字符串方法[归类].pdf

    Linuxsed批量替换字符串方法[归类].pdf

    Linuxsed批量替换字符串方法.pdf

    Linuxsed批量替换字符串方法.pdf

    Linux_sed_批量替换字符串方法

    很详细的关于linux sed的用法,每种用法都有详细的举例。

    整理Linux中字符串的相关操作技巧

    我们在linux的操作中经常会对文件中的字符串进行替换、统计...批量替换字符串 sed -i “s/查找字段/替换字段/g” grep 查找字段 -rl 路径 -rl 表示所有子目录 sed -i s/new Str/old Str/g 'grep old Str -rl filename'

    linux中批量修改文件名的脚本代码

    linux中批量修改文件名的脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下

    详解如何在Linux上一次性批量重命名一组文件

    在 Linux 中,我们对文件进行重命名一般都会使用到 mv 命令,这在对单个文件重命名时非常方便。但是,若我们想要对一组文件进行重命名,mv 就有些...其中,s 的作用是指定我们使用第二个字符串替换第一个字符串,从而将

    Android代码-multiple-apk-generator

    解决android apk的批量打包,支持渠道号替换或者服务器地址替换(字符串替换)、资源替换、指定文件修改、修改包名 轻量级: 使用shell脚本编写,方便开发者修改实现逻辑 基于gradle打包apk 使用说明 注: 需要依赖...

    脚本批量更改jvm运行内存

    1、赋执行权限 2、根据catalina.sh里面内存字符串,适当修改脚本中的替换字符与被替换字符串

    Linux shell利用sed如何批量更改文件名详解

    前言 本文主要给大家介绍了关于Linux shell用sed批量更改文件名的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。...这里使用sed进行标准输出的字符串替换,其通用格式如下: stdout | s

    PHP开发实战1200例源码

    实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式 147 实例116 验证电话号码的格式是否正确 147 实例117 验证Email地址格式是否正确 148 实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式 147 实例116 验证电话号码的格式是否正确 147 实例117 验证Email地址格式是否正确 148 实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式 147 实例116 验证电话号码的格式是否正确 147 实例117 验证Email地址格式是否正确 148 实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    (1)关键字、注释块、引号内字符串、操作符、特殊字符等,用不同的彩色字体加以区别 ; (2)如果光标前面是一个括号,高亮度显示配对的括号 支持批量SQL语句的运行:用监控器监控每条语句的运行,在运行过程中...

    天猫多店宝(双模式淘点金版) v3.0

    自动生成sitemap地图,可使搜索引擎快速收录跳转模式,点击跳转、自动跳转、延时跳转、多地址随机跳转自定义url,让你的网站地址随心所欲,有利于搜索引擎破解淘宝防采集,破解淘宝防采集技术内容替换(字符串替换、...

    linux sed命令详解(推荐)

    在shell中,使用sed来批量修改文本内容是非常方便的。 sed命令的选项 sed [选项] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上...

    天猫多店宝 v3.0.zip

    内容替换(字符串替换、正则替换) 广告管理,店铺顶部、底部广告一键设置 蜘蛛访问记录,随时关注搜索引擎爬行动向 蜘蛛屏蔽,屏蔽指定蜘蛛、无用垃圾蜘蛛,节约服务器资源减轻服务器压力 淘点金代码,将天猫...

    f2:F2 是一个跨平台的命令行工具,用于快速安全地批量重命名文件和目录。 用围棋写的!

    它提供了一套全面的重命名选项,并且可以很好地从简单的字符串替换到涉及正则表达式的更复杂的操作。 F2 通过确保重命名操作不会导致冲突或错误来优先考虑正确性和安全性。 它在执行重命名操作之前

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    JAVA上百实例源码以及开源项目源代码

    设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...

Global site tag (gtag.js) - Google Analytics