Linux批量替换文件内容

原创 2013年12月05日 15:25:47

           今天测试人员一不小心把导航的地址改错了,大约6000多个导航文件,要通过后台配置的话也很麻烦,可以通过linux命令实现对批量文件进行内容替换,但是技术经理不在,我对linux命令不熟,没办法只好硬着头皮来。经在网上一番辛苦搜索,找到以下几个命令,并尝试执行……最终终于实现效果,哎,“书到用时方恨少”,特此针对今天的情况总结了一下Linux批量替换文件内容的命令,

          第一种:   

    格式:sed -i "s/oldstr/newstr/g" filesname

    说明:oldstr     需要替换的旧字符串

          newstr     替换后的新字符串

          filesname  批量文件名称,支持正则,如:ST_*.json

    案例:

         如果我想把ST_*.json下面的文件里的“today” 替换为“tomorrow”,那就是:

         sed -i "s/today/tomorrow/g" ST_*.json

    但是这种命令有一个缺陷,就是替换的文件数量有限制,不过可以针对文件名称规则再细分几种类型,分几次执行就可以了。于是另寻出路,找到了下面一种:

    第二种:

    格式:sed -i "s/oldstr/newstr/g" `grep oldstr -rl yourdir`   

    说明:oldstr   需要替换的旧字符串

          newstr   替换后的新字符串

          yourdir  文件路径名称

    注意在  `grep oldstr -rl /path`   中 ` 为1前边的翻引号`,而不是enter 前的 '

    但是执行出错,说是找不到路径,但是路径也正确,不明所以,还请大牛指教。然后我看到了一段说明说这种做法”对多个文件的处理可能不支持,需要用 xargs, 搞定。“也就是下面的方法

    第三种:

    格式:grep oldstr -rl /path | xargs sed -i "s/oldstr/newstr/g"
    说明:oldstr   需要替换的旧字符串

          newstr   替换后的新字符串

          path     文件路径名称

    案例:

         如果我想把/app/web/sitemap下面的文件里的“today” 替换为“tommorow”,那就是:

         grep  today  -rl /app/web/sitemap  grep |xargs sed -i "s/today/tommorow/g"
    执行完毕,效果就出来了!这个太好用了。

           我总结的可能不全,但是这两个用起来很顺手,如有其它顺手的命令,还请大家补充!

如何在UltraEdit中使用正则表达式删除空格

转自http://blog.sina.com.cn/s/blog_4bd648a50102uy78.html 在UltraEdit中常用的一些正则表达式: % 匹配行首 - 表明要搜索的字...

SQL语句中CASE WHEN的使用实例

SQL中的CASE使用方法 Case具有两种格式。简单Case函数和Case搜索函数。  --简单Case函数 CASE sex          WHEN '1' THEN '男'        ...
  • haiross
  • haiross
  • 2015年06月08日 14:58
  • 42052

linux批量替换文件内容3种方法

原文地址:linux批量替换文件内容3种方法(perl,sed,shell)转作者:cheriec 方法1:   这两天在构建一个应用的使用用到了maven,由于project很大,足足有7...
  • lepoke
  • lepoke
  • 2012年12月29日 18:45
  • 293

Linux下批量替换文件内容方法

方法1: find -name '要查找的文件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g' 方法2: Linux下批量替换多个文件中的字符串的简单...

linux批量替换文件内容3种方法(perl,sed,shell)

方法1:   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需...

linux批量替换文件内容3种方法(perl,sed,shell)

转自:http://www.cnblogs.com/qq78292959/archive/2012/03/08/2385080.html 方法1:   这两天在构建一个应用的使用用到...
  • longkg
  • longkg
  • 2013年08月15日 09:06
  • 547

linux批量替换文件内容3种方法(perl,sed,shell)

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

linux sed命令 批量替换文件内容的方法

比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modul...

linux批量替换文件内容3种方法(perl,sed,shell)

inux批量替换文件内容3种方法(perl,sed,shell) 作者:GeekWolf /分类:服务器架构优化 字号:L M S 方法1: 这两天在构建一个应用的使用用到了maven,由于p...

linux批量替换文件内容3种方法(perl,sed,shell)

方法1:   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我需...
  • zacry
  • zacry
  • 2015年01月22日 16:41
  • 536
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux批量替换文件内容
举报原因:
原因补充:

(最多只允许输入30个字)