`

【转】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 前的 '
分享到:
评论

相关推荐

    字符串查找替换(批量任何文件)

    本主题将深入探讨如何在批量任何文件中进行字符串查找替换,这涉及到多个技术层面,包括基本概念、实现方法以及相关的工具和编程语言应用。 一、基本概念 1. 字符串:在计算机科学中,字符串是由一个或多个字符...

    多行批量字符替换 可替换任何文件里的字符串 特色在多行替换

    这个工具或技术的核心在于它能一次性替换文件或多个文件中的特定字符串,而不仅仅局限于单个字符或一行内容的替换,这在处理大量文本数据时尤其有用。 批量字符替换的基本原理是通过读取文件内容,查找并定位到需要...

    超级字符串批量替换工具

    这款工具以其便捷的操作和广泛的适用性,使得批量替换字符串变得轻而易举。 字符串替换通常涉及到文本编辑、编程语言中的字符串操作,例如在Python、Java、C#等中,我们常常需要对字符串进行查找和替换。而手动处理...

    Linux_sed_批量替换字符串方法

    ### Linux sed 批量替换字符串方法详解 #### 一、sed简介 `sed`(stream editor)是一款功能强大的文本处理工具,在Linux系统中被广泛应用于批量处理文本文件,特别是进行字符串查找、替换等操作。本文将详细介绍...

    java 文本字符串替换工具

    需要注意的是,如果要在多个文件中进行批量替换,你可能需要将上述代码封装到一个循环或递归函数中,遍历指定目录下的所有文件。同时,为了防止意外覆盖,可以考虑先备份原始文件,或者将替换后的内容写入新的文件。...

    linux下批量替换文件中的内容.docx

    Linux 系统中批量替换文件中的内容是指在一个或者多个文件中将指定的字符串批量替换为另一个字符串。这种操作可以使用 grep 和 sed 命令来实现。 grep 命令可以用来查找单个文件或文件夹下文件中的内容。使用参数"-...

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

    在给定的文件中,我们主要关注如何使用sed进行批量替换字符串的方法。 首先,一个基本的sed命令格式是: ```bash sed [option] 'command' file ``` 这里的`option`是可选参数,`command`是sed执行的操作,`file`是...

    linux下perl,sed,shell批量替换文件内容.docx

    在 Linux 系统中,批量替换文件内容是一项常见的任务,特别是在开发和维护大型项目时。下面将介绍三种方法来批量替换文件内容,即使用 Perl、sed 和 shell 命令。 方法 1:使用 Perl Perl 语言提供了强大的文本...

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

    以上是在Linux环境下使用sed命令进行批量替换字符串的方法。需要注意的是,进行文件原地修改时,一定要谨慎操作,最好先备份原始文件,避免意外覆盖。此外,由于sed命令的复杂性,如果脚本错误可能会导致文件内容的...

    linux从指定ID批量替换sql文件中记录的方法.docx

    在Linux环境中,有时候我们需要对SQL文件中的特定记录进行批量替换,比如当数据库的ID需要从某个数值开始递增时。本文档介绍了如何通过Linux命令行工具来实现这一目标。 首先,假设我们有一个名为`online.sql`的...

    一次查找替换文本中多个字符串

    这个小工具,"一次查找替换文本中多个字符串",是Java编程语言实现的一个实用程序,它专门针对那些需要批量处理文本文件,查找并替换特定字符串的用户。Java作为一种跨平台的语言,使得这个工具可以在不同的操作系统...

    shell 批量处理 字符串指令行

    - 数据清理:批量替换或删除文件中的特定字符或字符串。 - 自动化配置:根据模板文件生成多份配置文件,只需改变其中的某些变量。 例如,以下是一个简单的示例脚本,它读取`curl-test.txt`文件,将所有URL中的`...

    linux下批量替换文件内容的方法.docx

    在实际应用中,我们可能需要批量替换多个文件中的多个字符串,这时可以使用以下命令: grep netingcn * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i s/netingcn/.netingcn/g 这条命令将当前文件夹下...

    vi中实现字符串的替换

    Vi/Vim作为Linux系统中最常用的文本编辑器之一,提供了强大的文本处理功能,使得批量替换字符串变得非常简单高效。 #### 一、通过vi编辑器来替换 在vi/vim编辑器中,可以通过`:s`命令来实现字符串的替换。下面详细...

    字符串查找替换专业版工具

    在许多IT工具中,简短的命令行标识符常用于执行特定的功能,如grep命令在Linux中用于搜索文本文件,这里"chrepv"很可能有着类似的功能,即快速查找并替换字符串。用户可以通过输入相应的参数和指令,实现对文本文件...

    好用的字符替换工具,用于批量替换文本

    批量替换的核心是字符串查找与替换算法,如KMP(Knuth-Morris-Pratt)或Boyer-Moore算法,这些算法能够在大规模文本中快速定位目标字符或字符串,并进行替换。在“好用的字符替换工具”中,可能采用了类似的高效算法...

    批量修改或替换文件名中的字符,可修改扩展名

    在IT领域,对文件进行批量修改或替换文件名中的字符是一项常见的操作,特别是在处理大量文件时,手动修改每个文件的名称既费时又容易出错。这个任务可以通过编写脚本或者使用特定的工具来实现,大大提高了工作效率。...

    全能字符串替换机7.0无限制版

    - **批量替换**:全能字符串替换机7.0无限制版支持对大量文本文件中的特定字符串进行批量替换,这在处理代码库、日志文件或文档时非常有用。 - **正则表达式支持**:软件内置了正则表达式引擎,允许用户使用正则...

    python批量替换多文件字符串问题详解

    在Python编程中,批量替换多文件中的字符串是一项常见的任务,特别是在处理大量源代码或文本文件时。本篇文章将深入探讨如何使用Python有效地解决这一问题。 首先,我们可以利用Linux的命令行工具,如`sed`和`grep`...

    工程名称批量替换

    1. **文件操作**:批量替换首先要能够读取和遍历文件系统中的目录和文件。这需要掌握文件和目录的操作API,例如在Windows上使用`os`和`glob`库,或者在Linux/Unix系统中使用`fs`模块。这些API提供了列出目录、打开...

Global site tag (gtag.js) - Google Analytics