精华内容
下载资源
问答
  • Linux 批量替换文件内容 目录 Linux 批量替换文件内容 场景前提 Linux find 命令 Linux sed命令 参数说明: 动作说明: 正则实例 正题,替换不可见字符 <0x00>, vim 打开可能会显示 ^@ 注意事项 ...

    Linux 批量替换文件内容

    目录

    Linux 批量替换文件内容

    场景前提

    Linux find 命令

    Linux sed命令

     参数说明:

     动作说明:

     正则实例

    正题,替换不可见字符 <0x00>, vim 打开可能会显示 ^@

    注意事项


    场景前提

    由于编辑器批量操作或者其他误操作,且没有线上代码仓库,或者无法通过代码仓库回滚(原因是本地修改了大量的代码)而导致要批量修改文件内容要怎么办。目前的情况就是公司防御没有做好,导致未提交的代码被加密了,虽然最后抢救回来,但是解密后的文件被大量添加了 不可见的字符串 <0x00> 熟悉Linux的都知道遇到这个就会停止读取了。而且在编辑器看起来非常难看,sublime有批量文件夹替换,但是量太多太卡了,不理想。最后决定用Linux下shell命令行来搞

    Linux find 命令

    find [路径] [参数]
    
    find ./ -type f

    其他参数就不解释了,上面的意思就是查找当前目录下所有所有普通文件 ,当然你也可以指定特定的一个文件

    Linux sed命令

    sed [-hnV][-e<script>][-f<script文件>][文本文件]

     参数说明:

    • -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
    • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
    • -h或--help 显示帮助。
    • -n或--quiet或--silent 仅显示script处理后的结果。
    • -V或--version 显示版本信息。

     动作说明

    • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
    • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    • d :删除,删除匹配的字符串,所以 d 后面通常不接任何东西;
    • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
    • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

     正则实例

    sed -i "s/search/replace/g" ./test.txt

     解释:

    在test.txt文件中全局正则匹配到 search【改成你需要的】字符串 并替换为 replace 【改成你需要的】字符串,格式就是 s/匹配字符串/替换的字符串/g

    正题,替换不可见字符 <0x00>, vim 打开可能会显示 ^@

    sed -i "s/\x00//g" `find ./ -type f;`

    最终替换命令组合为上面所示。意思是全局替换当前目下所有普通文件中包含不可见字符 <0x00> 为空字符,也就是去掉 <0x00>

    注意事项

    sed -i 参数代表直接修改原文件,请测试好之后再运行命令,并且做好备份

    如果只是一小部分文件含有,或者要替换含有特定内容的文件,请用grep命令来过滤文件而不是find全部列举,使不必要文件进行sed操作

    展开全文
  • vim 文本替换 :%s/10.8.200.1/10.8.200.10/g linux 目录下面查找字符串 find -name '*.properties' |...linux 批量替换文件里面内容 find -name '*.properties' | xargs perl -pi -e 's|10.8.200.1:|10.8.200.10:|...

    vim 文本替换

    :%s/10.8.200.1/10.8.200.10/g 
    

    linux 目录下面查找字符串

    find -name '*.properties' |xargs grep '10.8.200.1:'
    

    linux 批量替换文件里面内容

    find -name '*.properties' | xargs perl -pi -e 's|10.8.200.1:|10.8.200.10:|g'
    
    展开全文
  • 今天测试人员一不小心把导航的地址改错了,大约6000多个...经在网上一番辛苦搜索,找到以下几个命令,并尝试执行……深知“书到用时方恨少”,特此针对今天的情况总结了一下Linux批量替换文件内容的命令,  第一种:

               今天测试人员一不小心把导航的地址改错了,大约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"
        执行完毕,效果就出来了!这个太好用了。

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

    展开全文
  • Linux批量替换文件下字符内容   格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`  linux sed 批量替换多个文件中的字符串  sed -i "s/oldstring/newstring/g" `grep ...

     

    Linux批量替换文件下字符内容

     

    格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`

      linux sed 批量替换多个文件中的字符串

      sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

     

    例子:

     

    sed -i "s/leyangjun/newLeyangjun/g" `grep leyangjun -rl /opt/meituan/www/ilegong-web`      //支持中文替换

    展开全文
  • linux批量替换文件内容3种方法(perl,sed,shell) 方法1:   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 pom.xml文件,更郁闷的是在很多pom.xml文件里都单独指定了资源库的url,我...
  • linux批量替换文件内容

    千次阅读 2015-10-21 09:33:24
    linux批量替换文件内容 两种方法:都使用sed -i命令 1、 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`  linux sed 批量替换多个文件中的字符串  sed -i "s/oldstring/newstring/g" `grep ...
  • linux 批量替换文件内容

    千次阅读 2017-08-08 20:32:27
    1.批量查找某个目下文件的包含的内容,例如: # grep -rn "要找查找的文本" ./ ...2.批量查找并替换文件内容。 # sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./`
  • linux批量替换文件内容 1、网络上现成的资料  格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`  linux sed 批量替换多个文件中的字符串  sed -i "s/oldstring/newstring/g" `grep oldstring -...
  • linux批量替换文件内容3种方法(perl,sed,shell) 3种方法:linux批量替换文件内容3种方法(perl,sed,shell)
  • ls |xargs perl -pi -e 's|旧内容|新内容|g' 根据情况——比如不处理目录——增加ls的参数
  • Linux 系统中经常会遇到批量替换文件内容的命令,有如下几个场景1、批量替换文件夹内文件的内容。 配合sed 和 grep两个命令使用。 1.1 在一个文件中替换字符串的命令。 sed -i "s/beijing/shanghai/g" ...
  • Linux批量替换文件中多个字符

    千次阅读 2018-08-21 16:50:09
    sed -i 's/原字符/目标字符/g' sed -i 's/原字符/目标字符/g' `grep 原字符 -rl ./...-i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文件名 s表示替换,d表示删除 示例:sed -i ‘...
  • linux快速批量替换文件内容 描述 一下情景: 某天安装个solr集群,要安装solr,N多core的那种,要把每个core配置文件中的“static firstSearcher warming in solrconfig.xml”变为 “:” ,还有数据的连接地址、...
  • 本篇文章主要介绍了linux批量替换文件内容的三种方法(perl,sed,shell),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • 原文地址:linux批量替换文件内容3种方法(perl,sed,shell)转作者:cheriec 方法1:   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个pom.xml文件,更郁闷的是在很多pom.xml文件里都单独...
  • 比如大量空行,对内容批量修改 sed(正则) 更擅长对行进行处理 文字替换 只输出到终端 Str-》String 内容没有变更 确认替换 -i 替换转义 \ 全文替换 /最后+g 错误示范,只替换行首次出现 删除空行 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,642
精华内容 10,656
关键字:

linux批量替换文件中内容

linux 订阅