欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


让Windows 7系统减肥3GB
如何更换Windows7的登陆界面?
Linux操作系统下使用yum升级的详细方法
减少Linux内核空循环 降低系统能耗技巧
软盘版的Linux系统防火墙制作教程
Linux操作系统下显示模式刷新率怎么改
LINUX+ORACLE最简化最重要步骤
Windows 7下无法找到DVD驱动怎么办
Windows 7中如何删除所有还原点
用LVS在Linux上搭建负载均衡集群服务
linux下perl,sed,shell批量替换文件内容
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   方法1:

  这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需要把这些资源库的url统一指定到nexus本地中央库.

  手 工一个个改文件配置有点不太实际,所以google了一下,找到批量替换文件内容的好方法,命令结构如下:

  find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'下面这个例子就是将当前目录及所有子目录下的所有pom.xml文件中的”http://www.111cn.net/phper/php.html“ 替换为”http://www.111cn.net“.

  find -name 'pom.xml' | xargs perl -pi -e 's|http://www.111cn.net/phper/php.html|http://www.111cn.net|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'

  补充说明:

  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前边的翻引号`,而不是enter 前的 '

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站