首页 > 其他分享 >递归批量替换当前文件夹下的文件的指定内容

递归批量替换当前文件夹下的文件的指定内容

时间:2023-11-22 10:58:50浏览次数:36  
标签:sed 递归 批量 exec find 命令 文件夹 字符串 替换

find ./ -type f -exec grep -q "被替换的字符串" {} \; -exec sed -i 's/被替换的字符串/新字符串/g' {} +

这个命令的含义是:
find ./ -type f:在当前目录及其子目录下查找所有文件。
-exec grep -q "被替换的字符串" {} \;:对每个文件执行 grep 命令,检查是否包含 "被替换的字符串",-q 选项表示安静模式,不输出匹配的行。
-exec sed -i 's/被替换的字符串/新字符串/g' {} +:对包含 "被替换的字符串" 的文件执行 sed 命令进行替换。
这种方式可以处理文件名中包含空格等特殊字符的情况,并在找到匹配的文件时进行替换。

在find命令中,{} 是一个占位符,它表示每个匹配到的文件名。在-exec选项中,{} 会被替换为find命令找到的每个文件的名称。
在上述命令中:
-exec grep -q "被替换的字符串" {} \; 中的 {} 被替换为 find 找到的每个文件名,然后 grep 命令就会针对每个文件执行。
-exec sed -i 's/被替换的字符串/新字符串/g' {} + 同样地,{} 被替换为每个匹配到的文件名,然后 sed 命令会在找到的文件上执行替换操作。
这种使用 {} 的方式使得 find 命令能够在每个匹配的文件上执行指定的命令。

在find命令的 -exec 选项中,+ 表示将找到的文件名传递给命令,尽可能多地组合在一起,以便最大程度地减少命令的启动次数,这有助于提高效率。
使用 + 而不是 \; 的优势在于,+ 允许 find 命令将多个文件名一次性传递给命令,从而减少了启动命令的次数。这对于大量文件的操作而言效率更高。

-exec sed -i 's/被替换的字符串/新字符串/g' {} +

+ 表示将满足条件的多个文件名一次性传递给 sed 命令进行替换。如果使用 \; 替代 +,则 find 会为每个匹配的文件分别执行一次 sed 命令,这可能会导致效率较低,尤其是在处理大量文件时

标签:sed,递归,批量,exec,find,命令,文件夹,字符串,替换
From: https://www.cnblogs.com/jsom/p/17848449.html

相关文章

  • wxid批量转换微信号接口工具,自动转换二维码,开源API分享!
    这个是今天客户定制的,就是从微信群导出了很多WXID,然后实现通过WXID加好友,我就直接调用了微信的接口,说明一下这是微信公开的接口,不存在HOOK或者是逆向技术存在的,公开接口,任何人都可以调用,我就是把接口通过易语言实现了批量生成的功能效果。界面图:  WXID添加效果,不是微信号,是......
  • C# 窗体应用程序文件夹内容及各文件功能
     1.每创建一个窗体就会生成三个文件,.cs、.Designer.cs、.resx,.cs是整个窗体的应用程序代码,重点。 2.Properties主要是一些属性信息。3.app.config是配置信息,实现修改配置信息,程序就根据配置信息进行运行。 ......
  • Tita 升级|「绩效管理」批量导入同事和申诉多角色扩展
    1.【考核管理】确认同事评价人时,支持批量操作Tita-OKR和新绩效一体化管理平台 使用场景:在一次考核活动中,当被考核人和同事评价人都比较多时,可以通过批量导入同事评价人的方式实现人员的确认;进入确认同事评价人待办列表,右上角点击「批量导入」,弹出「批量导入」的弹窗,进行导......
  • 零代码编程:用ChatGPT根据视频标题来批量重命名字幕文件
    现在有很多视频文件:还有视频相对应的字幕文件:F:\儿童学习教育\Abadas.适合2岁以上.BBC儿童学习单词的动画\abadas字幕两者的文件标题不一样,现在要将字幕文件的标题全部根据视频文件来重命名。在chatGPT中输入提示词:你是一个Python编程专家,要完成一个根据视频标题来批量重命名字幕文......
  • Bat删除空文件夹
    删除空文件夹批处理递归删除当前及子目录中的空文件夹将以下代码复制保存至def.bat文件中,直接双击运行即可(不推荐使用)@echooff:deldirsetlocalenabledelayedexpansionfor/d%%ain(%1*)do(setp="%%a\"setp=!p:.\"=..\"!rd!p!||(call:deldir!p!&rd!p!......
  • 正则表达式批量增加空格
    排版用,在中文和英文,中文和数字之间,用正则表达式批量增加空格中文在左,数字或英文字母在右([\u4e00-\u9fa5]+)([\da-zA-Z]+)数字或英文字母在左,中文在右([\da-zA-Z]+)([\u4e00-\u9fa5]+)replace$1$2参考文档示例文本Sample示例文本......
  • 零代码编程:用ChatGPT将SRT字幕文件批量转为Word文本文档
    一个文件夹中有多个srt视频字幕文件,srt文件里面有很多时间轴:现在想将其批量转为word文档,去掉里面与字符无关的时间轴,在ChatGPT中输入提示词:你是一个Python编程专家,要完成一个批量将SRT字幕文件转为Word文本文档的任务,具体步骤如下:打开文件夹:F:\儿童学习教育\Abadas.适合2岁以上.BBC......
  • Windows10 删除库文件夹
    删除打开注册表,找到以下:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace在左侧NameSpace目录下找到{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}子项删除注:64位系统可能需要额外删除以下目录的同名子项:计算机\HKEY_LOCAL_M......
  • 微信wxid转换二维码微信号加好友工具,自动批量转码器免费分享,开源版哈收藏!
    wxid估计很多小伙伴都知道,就是属于那种没有设置了微信号的账号,它没有设置自己的微信号或者就显示了默认的ID值,这个ID值你是没办法通过微信的好友添加框去添加的,但是有一种办法可以实现这种效果,只需要用软件,安卓手机或者电脑都可以我这里分享的是电脑的源码,目前是2023年11月20号,这......
  • PXE 高校批量网络装机
    PXE系统装机引导方式启动操作系统1、硬盘2、光驱 (u盘)3、网络启动(PXE)装操作系统系统镜像u盘光盘pe:小型的操作系统在操作系统再装操作系统pxepxe是通过网卡引导启动实现的硬件条件.BIOS支持2.网卡支持(现在基本都已支持)3.需要在bios中开启开关,服务器一般没打开......