当前位置: 首页 > news >正文

Ubuntu批量修改文件名

文章目录

  • 批量重命名文件:Ubuntu下使用find命令结合sed和mv
  • 参考


批量重命名文件:Ubuntu下使用find命令结合sed和mv

在日常开发和文件管理中,有时我们需要批量重命名一批文件,比如将文件名中的某个特定字符串替换为另一个字符串。在这个案例中,我们要将文件名中包含 " - 副本.h" 的部分替换为 “_ori.h”。

include$ ls
'Converter - 副本.h'    'KeyFrame - 副本.h'          'Map - 副本.h'        'ORBextractor - 副本.h'   'Sim3Solver - 副本.h'Converter.h            'KeyFrameDatabase - 副本.h'  'MapDrawer - 副本.h'   ORBextractor.h            Sim3Solver.h
'Frame - 副本.h'         KeyFrameDatabase.h           MapDrawer.h          'ORBmatcher - 副本.h'     'System - 副本.h'
'FrameDrawer - 副本.h'   KeyFrame.h                   Map.h                 ORBmatcher.h              System.hFrameDrawer.h          'LocalMapping - 副本.h'      'MapPoint - 副本.h'   'ORBVocabulary - 副本.h'  'Tracking - 副本.h'Frame.h                 LocalMapping.h               MapPoint.h            ORBVocabulary.h           Tracking.h
'Initializer - 副本.h'  'LoopClosing - 副本.h'       'Optimizer - 副本.h'  'PnPsolver - 副本.h'      'Viewer - 副本.h'Initializer.h           LoopClosing.h                Optimizer.h           PnPsolver.h               Viewer.h

find . -type f -name “* - 副本.h” -exec bash -c ‘mv “ 0 " " 0" " 0""(echo “$0” | sed “s/ - 副本.h/_ori.h/”)”’ {} ; 解析

include$ ls
Converter.h        Initializer.h           LocalMapping.h      Map.h            ORBextractor.h       PnPsolver.h       Tracking.h
Converter_ori.h    Initializer_ori.h       LocalMapping_ori.h  Map_ori.h        ORBextractor_ori.h   PnPsolver_ori.h   Tracking_ori.h
FrameDrawer.h      KeyFrameDatabase.h      LoopClosing.h       MapPoint.h       ORBmatcher.h         Sim3Solver.h      Viewer.h
FrameDrawer_ori.h  KeyFrameDatabase_ori.h  LoopClosing_ori.h   MapPoint_ori.h   ORBmatcher_ori.h     Sim3Solver_ori.h  Viewer_ori.h
Frame.h            KeyFrame.h              MapDrawer.h         Optimizer.h      ORBVocabulary.h      System.h
Frame_ori.h        KeyFrame_ori.h          MapDrawer_ori.h     Optimizer_ori.h  ORBVocabulary_ori.h  System_ori.h

find . -type f -name “* - 副本.h” -exec bash -c ‘mv “ 0 " " 0" " 0""(echo “$0” | sed “s/ - 副本.h/_ori.h/”)”’ {} ;

  • find .:
    • 从当前目录开始查找文件。
  • type f:
    • 指定查找的类型为文件(排除目录)。
  • name “* - 副本.h”:
    • 匹配所有以 " - 副本.h" 结尾的文件名。
  • exec bash -c ‘…’ {} ;:
    • 对每个匹配的文件执行指定的操作。
  • echo “$0” | sed “s/ - 副本.h/_ori.h/”:
    • 使用 sed 将文件名中的 " - 副本.h" 替换为 “_ori.h”。
    • s/ - 副本.h/_ori.h/ 是 sed 替换命令的语法。
  • mv “ 0 " " 0" " 0""(echo …)”:
    • 使用 mv 命令将文件重命名为新的名称。

参考


http://www.lryc.cn/news/507588.html

相关文章:

  • 食家巷大烤馍:岁月沉淀下的麦香传奇
  • harmony UI组件学习(1)
  • BTP Integration Suite CPI Apache Camel
  • vitepress-打包SyntaxError: Element is missing end tag.
  • 【从零开始入门unity游戏开发之——C#篇21】C#面向对象的封装——`this`扩展方法、运算符重载、内部类、`partial` 定义分部类
  • Java进程占用的内存有哪些部分?
  • 【华为OD机试真题】【2024年E卷】数值同化-队列BFS(C++/Java/Python)
  • “魔法糖果盒的秘密:用朴素贝叶斯算法猜糖果颜色”
  • linux中docker命令大全
  • Python `str.strip()` 的高级用法详解
  • [蓝桥杯 2019 国 B] 排列数
  • [bug] StarRocks borker load意向之外的bug
  • 2025年前端面试热门题目——HTML|CSS|Javascript|TS知识
  • Linux中部署项目
  • 在 CentOS 上安装 MySQL 8
  • gradle项目下载依赖报错
  • solon 集成 activemq-client (sdk)
  • LRU 缓存
  • 使用ZLMediaKit 开源项目搭建RTSP 服务器
  • 数组晨考2day08
  • 《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》简介
  • 麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储
  • 将OBJ或GLB文件转换为3DTiles
  • Flink DataStream API 编程指南
  • tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)
  • 探索 Plotly:一个强大的交互式数据可视化库
  • Oracle 查询表占用空间(表大小)的方法
  • 机器人国际会议IROS论文latex模板
  • 雪泥鸿爪和屈指可数
  • 2024年度个人总结