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

1、使用场景:

在进行编码或是代码移植时经常遇到,要批量替换特定字符串,于是找到了如下方法。这一方法在替换ip地址时也常常用到。

2、命令使用:
        
sed -i 's/old_string/new_string/g'  `grep old_string -rl ./`                           //一般的替换用这条足以实现
sed -i 's/old_string/new_string/g'  `grep old_string -rl ./ | grep -vE "tags|svn"`     //特殊要求的替换:此命令中要求过滤掉含有tags和svn的文件

3、说明:  将当前目录下,文本中含有的old_string的串替换为new_string.

1) grep old_string -rl ./ 检索出当前目下及子目录下的目标文件(含有old_string字符串的文件)

2)grep -vE "tags|svn" 过滤掉不合格的文件(含有tags或者svn字符的文件)。因为代码库里面经常包含有索引文件,这些索引文件受控于svn,不应认为改动。所以最好过滤掉

3) sed  -i          -i 表示 inplace edit, 就地修改文件,请注意批量替换前请先备份。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: sed是一种流编辑器,可以用于批量替换文件内容。它可以读取文件中的文本,并对其进行修改,然后将修改后的文本输出到标准输出或者写回原文件。使用sed进行批量替换文件内容的方法是,先使用sed命令读取文件中的文本,然后使用替换命令将需要替换的文本替换为新的文本。最后,将修改后的文本输出到标准输出或者写回原文件。 ### 回答2: sed是一种文本编辑器,可以帮助用户批量替换文件中的内容。它支持正则表达式,可以用来匹配和替换文本。在命令行中使用sed可以快速,高效地完成批量替换文件内容的任务,下面我们就来详细介绍一下。 sed命令格式: sed [选项参数] '[sed命令]' [文件] 选项参数: -i 表示直接在文件上进行修改,如果不加-i选项,sed只是对文本进行替换操作,不对原文件进行修改。 -e 执行多个命令,用分号隔开。 sed命令: 1. s//:替换命令 最常用的sed命令是s命令,用于替换文本。 例如:s/old/new/可以将文件中的old替换为new。 2. 替换指定行: 例:sed –i '3s/old/new/g' file.txt 将文本文件file.txt中的第三行匹配的内容的"old"替换为"new",g代表全文替换。 3. 替换指定行的指定字符串: 例:sed -i '/word/s/old/new/g' filename 将filename文件中,包含word的行中的old替换为new,g代表全文替换。 4. 替换指定行范围内的指定字符串: 例:sed -i '2,5s/old/new/g' file.txt 将文本文件file.txt中的第2行和第5行之前(不包括第5行)匹配的内容的"old"替换为"new",g代表全文替换。 总之,sed命令是一种高效、灵活、强大的批量替换文件内容的工具,可以极大地提高用户的工作效率。需要注意的是,在使用sed命令进行批量替换的时候,一定要谨慎操作,确保修改的内容是正确的,避免不必要的损失。 ### 回答3: sed是一种强大的文本处理工具,它可以用来编辑文件中的文本,批量替换文件内容是 sed 最常见的用途之一。 sed命令的用法非常简单,它的基本语法如下: ``` sed [-nefri] 'command' 文件名 ``` 其中,-n 选项表示只打印出经过处理的文本行,而不是全部打印出来;-e 选项表示指定要执行的 sed 命令;-f 选项表示指定一个包含 sed 命令的文件,可以在文件中存储多个命令;-r 选项表示使用扩展的正则表达式;-i 选项表示在原文件中直接修改,而不是在终端输出。 sed命令中的 command 包含一个或多个 sed 的操作命令,比如 s 命令表示替换字符串,d 命令表示删除指定的文本行等。 下面我们以一个具体的例子来演示如何使用 sed 批量替换文件内容: 假设我们有多个文件包含 "hello,world" 字符串,现在需要将字符串中的逗号替换为句号,可以使用如下命令: ``` sed -i 's/,/./' 文件名 ``` 其中,-i 选项表示直接在文件中修改,s/old/new/ 表示将 old 替换为 new,/ 表示分隔符,可以使用任何字符作为分隔符。 如果需要替换多个文件中的内容,可以使用通配符 * 批量处理: ``` sed -i 's/,/./' *.txt ``` 以上命令将批量替换所有的 .txt 文件中的 "hello,world" 字符串。 当然,sed 命令不仅仅能够进行文本替换,还可以用于删除指定文本行、插入新文本行、正则表达式匹配等操作,可以根据不同的需求选择合适的命令进行操作。 总之,sed 是一种非常实用的文本处理工具,掌握 sed 命令的用法可以让我们更加高效地处理文件中的文本内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值