批量替换文本内容和批量重命名文件的操作

sed -i 's/old_str/new_str/g' `grep old_str -rl /path/`  //文本替换

find . -type f -name "old_file_partial_name*" | xargs -I {} rename -v old_file_partial_name new_file_partial_name {}    //文件名替换

1. 批量替换文件内容

  • 作用:在 /path/ 目录及其子目录下,所有包含 old_str 的文件中,将 old_str 替换为 new_str
  • 各部分解析:
    • grep old_str -rl /path/
      • grep 用于查找文件内容包含 old_str 的文件。
      • -r:递归搜索子目录。
      • -l:只输出包含匹配内容的文件名(而非匹配行内容)。
      • 整体作用:找到所有包含 old_str 的文件路径。
    • sed -i 's/old_str/new_str/g' `...` 
      • ... 是命令替换,将 grep 找到的文件路径作为 sed 的输入。
      • sed -i:直接修改文件内容(-i 表示 “in-place”,即原地修改)。
      • s/old_str/new_str/gsed 的替换命令,s 表示 “substitute”(替换),g 表示 “global”(全局替换,一行中所有匹配都会被替换)。

2. 批量重命名文件

  • 作用:在当前目录(.)下,批量将文件名中包含 old_file_partial_name 的文件,重命名为包含 new_file_partial_name 的新文件名。
  • 各部分解析:
    • find . -type f -name "old_file_partial_name*"
      • find .:在当前目录搜索。
      • -type f:只搜索文件(排除目录)。
      • -name "old_file_partial_name*":匹配文件名以 old_file_partial_name 开头的文件(* 是通配符,匹配任意字符)。
    • | xargs -I {} ...
      • |:管道,将 find 的结果传递给 xargs
      • xargs -I {}:将管道输入的每个文件路径,替换为 {}(相当于 “占位符”)。
    • rename -v old_file_partial_name new_file_partial_name {}
      • rename:重命名文件的工具(需确保系统已安装 rename 命令,部分系统可能是 prename 或其他变体)。
      • -v:“verbose”,显示重命名的详细过程。
      • old_file_partial_name new_file_partial_name:将文件名中的 old_file_partial_name 替换为 new_file_partial_name
      • {}:被 xargs 替换为 find 找到的文件路径,指定要重命名的文件。

总结

  • 第一条命令用于批量修改文件内容(替换文本)。
  • 第二条命令用于批量重命名文件(修改文件名)。
  • 两者结合了 grep/find(查找目标)、sed/rename(执行操作)和 xargs(传递参数),是 Linux 下高效的批量操作工具链。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值