(一) Linux文件名转windows文件名

在Linux下对于文件的命名基本没有多大限制(不能有”/”),但是在windows下,文件名不允许有

\ / : * ? " < > |,所以如果需要复制文件的时候,在Linux下面命名正确的文件就需要检查命令规则,看是否满足windows的命名规则,主要是检查文件名时候有\ / : * ? " < > |这几个字符,然后将该字符转换为’-’。

这里介绍一个功能比较强大的重命名命令rename:

rename命令的格式:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

-v, --verboseVerbose: print names of files successfully renamed.

-n, --no-actNo Action: show what files would have been renamed.

-f, --forceForce: overwrite existing files.

简单的rename使用命令:

字母的替换

rename "s/AA/aa/" *             //把文件名中的AA替换成aa

修改文件的后缀

rename "s/.html/.php/" *     //把.html 后缀的改成 .php后缀

批量添加文件后缀

rename "s/$/.txt/" *             //把所有的文件名都以txt结尾

批量删除文件名

rename "s/.txt//" *               //把所有以.txt结尾的文件名的.txt删掉

(1)         使用rename命令:由于双引号和”\”在rename命令中会被shell特殊功能扩展,所以暂时还不能替换这两个

find path -type f | xargs rename 's/[:*?<>|]/-/g'

(2)         使用sed命令:由于双引号和”\”在sed命令中会被shell特殊功能扩展,所以暂时还不能替换这两个(注意由于使用sh的时候会创建很多新进程效率较低)

find path -type f |

sed -n 'h;s#.*/##;s#[:*?<>|]#-#g;ta; a:G;s#^\([^\n]*\)\n\(.*/\)\([^/]*\)$#mv \2\3 \2\1#' | sh –x

(二)批量修改同格式的文件名

如果要修改的文件名的格式一致,可以使用

(1)            find ./ -name xxx -exec mv {} {}.xx \

这个是最简单的了,但是有一点不好的是只能在后面加个后缀

(2)            find ./ -name xxx | xargs -I mv {} {}.xx

(3)            find ./ -name XXX | awk ''{printf("mv %s \t %s \n",$1,$1)}'' | sh

awk 里面可以自由发挥 单纯的对文件名处理来说 还不是awk的强项(注意由于使用sh的时候会创建很多新进程效率较低)

(4)            find ./ -name xxx | sed ''s/XXX/mv xxx xxxxx/'' | sh

(注意由于使用sh的时候会创建很多新进程效率较低)

(5)            ls | sed 's/.old$//'|xargs -I {} mv {}.old {}

创建进程的消耗是很大的,所以能用xargs的时候就不要用 |sh

linux find 批量改名,批量修改文件名(find rename sed)相关推荐

  1. 批量修改文件名(find rename sed)

    (一) Linux文件名转windows文件名 在Linux下对于文件的命名基本没有多大限制(不能有"/"),但是在windows下,文件名不允许有 \ / : * ? " ...

  2. 文件批量改名#批量修改文件名称中有特殊符号

    在日常工作中,相信大家都会碰到,需要有修改文件名或文件夹名称等,修改方法也是很多种,如果遇到文件名有特殊符号,要如何把特殊符号删除或替换成自己需要的文字或其他表情符号呢.一般大家都是手动去修改,如果文 ...

  3. bat命令批量获取和修改文件名

    eg. 如图所示: 1.批量提取 (1)新建文本文档在文本文档里输入: dir /a-d /b *.mp4>src.txt echo 收集文件名成功! pause (2)保存为"cre ...

  4. c语言文件批量改名,批量重命名文件的技巧

    批量重命名文件的技巧 尝试了半天,终于找到了几种批量重命名文件的方法,记录下来以备后用^_^ [quietheart@lv-k temp]$ touch {1,2,3,4,5}.cpp [quieth ...

  5. Linux下最简单的修改文件名后缀的命令行技巧

    在linux上面一直没有找到好的修改文件的方法,今天找到了一个 mv file.{cpp,c} 上面的意思就是说把文件file结尾为cpp改成c文件格式 看下图 

  6. linux mv修改文件名,linux命令mv - 移动或修改文件名

    -b --backup的简单模式不接受参数 --backup[=CONTROL] 如果目标文件存在,覆盖前,给被覆盖的文件创建一个备份. -f 强制覆盖,不给用户提示确认的机会.有一定得危险性,同时也 ...

  7. Linux下批量修改文件名(rename)

    1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rena ...

  8. Java实现批量修改文件名

    本文主要讲述如何通过 Java 语言实现批量多层级修改文件名. 现象描述 不知道伙伴们有没有遇到这样的问题:当你从网上下载一些资源的时候,每个文件名上都加上了一些推广信息 ⬇️ 更夸张的是,当下载的资 ...

  9. linux修改文件名的三种方法

    文章目录 前言 一.用mv命令修改文件名 二.使用cp命令修改 三.使用rename命令修改 总结 前言 我们在使用linux系统过程中为了便于记忆或整理维护,经常需要对文件名进行修改,下面文章介绍了 ...

最新文章

  1. String与StringBuffer的区别
  2. 【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模
  3. Erlang/OTP设计原则(文档翻译)
  4. XP下卸载IE8还原到IE7的解决方法
  5. 【中山市选2009】【BZOJ2463】谁能赢呢?
  6. 一道面试题:用多线程求1000以内的素数有多少个?并给出消耗时间
  7. 【转载】MyBatis+MySQL 返回插入的主键ID
  8. Protobuf import文件导入其他proto
  9. WPF触发器(Trigger、DataTrigger、EventTrigger)
  10. Dell也来凑热闹,传将数月内发售Android手机Mini 3i
  11. 爬虫使用代理socks
  12. 深耕一线14年,见证云计算风起云涌
  13. 百度网盘,实现免费不限速,10M/S?都是假的
  14. 网络安全之僵尸网络与蠕虫的学习笔记
  15. 测试人员Testlink初级使用教程
  16. API网关之网关概述、技术选型
  17. UE4 指南针制作方法
  18. 三大原创IP首次合体亮相 乐元素聚乐中国“网络文学+ ”大会
  19. java将五元换成1元5角_C,一个代码来获得一笔钱转换成四分之一,硬币,镍币,便士[关闭]...
  20. R语言使用rgamma函数生成符合Gamma分布的随机数、使用plot函数可视化符合Gamma分布的随机数(Gamma Distribution)

热门文章

  1. windows虚拟机中没有摄像头的解决方法+win10开启摄像头方法
  2. 这个杀手不太冷 Léon (1994)
  3. 华为突然宣布鸿蒙,上鸿蒙!刚刚,华为突然宣布!
  4. Linux 简单入门
  5. 蛋白酶WSS1A/核酸内切酶MUS81/磷酸二酯酶TDP的DPC修复机制
  6. python中yield语句的作用_Python中关键字yield有什么作用
  7. 每台计算机用户都有一个独有的,因特网上的每台正式计算机用户都有一个独有的()...
  8. 为让代码注释更和谐,有人提议用拥抱替换 Fu*k
  9. 面试题:SQL语句的执行顺序
  10. 企业电子邮箱官网,企业电子邮箱地址大全