有时需要对目录下的多个文件中的字符串进行替换,如果手动逐个替换既费时又容易漏掉。此时可通过sed命令对指定目录下的所有文件进行操作。

假如将命令写在一个sh文件中,名字为replace_string_in_all_files.sh,接受三个参数:第一个参数指定要操作的目录;第二个参数指定文件中的要替换的字符串;第三个参数指定替换后的字符串,如:

./replace_string_in_all_files.sh src csdn github

第一种方式通过for,如下所示:

for file_name in $(find $1 -type f -name "*"); do#echo "file name: ${file_name}"sed -i "s/$2/$3/g" ${file_name}
done

第二种方式,可通过exec将第一种方式写在一条语句中,如下:

find $1 -type f -name "*" -exec sed -i "s/$2/$3/g" {} \;

第三种方式,也可通过xargs写在一条语句中,如下:

find $1 -type f -name "*" | xargs sed -i "s/$2/$3/g"

注意: 如果需要替换的源字符串或目的字符串中包含反斜杠、星号、单引号等特殊字符,则需要使用另一个反斜杠(\)对其进行转义。如果连续有多个特殊字符,则需要分别转义每个字符。如将src目录下的所有文件中的#include <opencv/core.hpp>替换为#include <opencv2/highgui.hpp>,则执行以下命令:

find src -type f -name "*" | xargs sed -i "s/opencv\/core/opencv2\/highgui/g"

 GitHub:https://github.com/fengbingchun/Linux_Code_Test

通过sed命令替换批量文件中的字符串相关推荐

  1. Sed命令替换指定文件中某一行所有内容

    Linux下使用Sed命令:sed -i 's/Mcu.*/Mcu version:123456/g' /etc/mversion 其中,s表示将替换文件所有行:若替换某几行则使用如下方式:1s,2s ...

  2. sed替换所有文件中的字符串

    查找文件夹下包含字符串的文件 例:查找/usr/local目录下所有包含"rubyer.me"的文件. grep -lr 'rubyer.me' /usr/local/* vim替 ...

  3. python 操作word 替换字符串为图片_用python将.docx文件中的字符串替换为jpg

    对不起,我的英语不好.在 我试图用.jpg文件替换.docx文件中的字符串.首先,我将JPEG转换为BMP并将其移动到剪贴板,然后使用找到.执行用"^c"替换docx文件中的特殊字 ...

  4. linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...

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

    原文: http://blog.csdn.net/kauu/article/details/1757325 一.linux sed 批量替换多个文件中的字符串 sed -i "s/oldst ...

  6. [转载]Linux批量替换不同文件中的相同字符串

    转载自:http://bbs.phpchina.com/blog-191373-187668.html 方法1   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 ...

  7. linux sed命令新文件名,linux中sed命令批量修改

    sed命令下批量替换文件内容 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名 -i 表示inplace edit,就地修改文件 ...

  8. linux 批量替换所有文件中包含的字符串

    sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .`格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 ...

  9. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

最新文章

  1. 网站优化靠前排名讲方法
  2. 使用 class-dump 扫描 app 关键字
  3. ubuntu和python快速换源
  4. 深入解读 MySQL 架构设计原理,剖析存储架构选型核心
  5. Python知识总结(二)
  6. DNS(BIND) 正向解析   反向解析 基本服务的搭建
  7. python os.remove拒绝访问_「进阶Python」第八讲:代理模式
  8. 分享2011年10月网上随机搜集的超酷超有趣的web开发和Javascript代码
  9. Apache Rewrite 拟静态配置
  10. 环信即时通讯在工程中的安装——Nusen_Liu
  11. Excel数据分析实例
  12. Swift网络请求框架Moya的使用
  13. python爬虫--scrapy框架的学习和使用(七)⭐---第二部分
  14. 树莓派成功使用 TPLINK WDN5200H网卡( 芯片 rtl8821cu )
  15. 【UNR #6 B】机器人表演(DP)
  16. TextBox 单行文本框,多行文本框
  17. ios多线程浅谈和使用
  18. Unity-多米诺骨牌
  19. 战争地带2100(Warzone 2100)
  20. 操作系统-Linux内核系列

热门文章

  1. Unity通过UnityWebRequest进行Http链接
  2. Skywalking分布式链路跟踪(一)原理、docker搭建oap-ES7.x存储、配置java测试项目
  3. JSP-Scriptlet
  4. 902-基于可变参模板实现的线程池架构和使用方式
  5. 插入排序详解及递归实现
  6. 一些常用的操作系统以及其特点和应用场景总结
  7. C# VS开发工具 展开和折叠代码的快捷键
  8. 中山纪中训练游记Day1+8.1模拟赛题解
  9. java四年工作经验面试题,Java视频
  10. SQLyog连接MySQL8时出现的错误号码2058解决方法