linux find 批量改名,批量修改文件名(find rename sed)
(一) 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)相关推荐
- 批量修改文件名(find rename sed)
(一) Linux文件名转windows文件名 在Linux下对于文件的命名基本没有多大限制(不能有"/"),但是在windows下,文件名不允许有 \ / : * ? " ...
- 文件批量改名#批量修改文件名称中有特殊符号
在日常工作中,相信大家都会碰到,需要有修改文件名或文件夹名称等,修改方法也是很多种,如果遇到文件名有特殊符号,要如何把特殊符号删除或替换成自己需要的文字或其他表情符号呢.一般大家都是手动去修改,如果文 ...
- bat命令批量获取和修改文件名
eg. 如图所示: 1.批量提取 (1)新建文本文档在文本文档里输入: dir /a-d /b *.mp4>src.txt echo 收集文件名成功! pause (2)保存为"cre ...
- c语言文件批量改名,批量重命名文件的技巧
批量重命名文件的技巧 尝试了半天,终于找到了几种批量重命名文件的方法,记录下来以备后用^_^ [quietheart@lv-k temp]$ touch {1,2,3,4,5}.cpp [quieth ...
- Linux下最简单的修改文件名后缀的命令行技巧
在linux上面一直没有找到好的修改文件的方法,今天找到了一个 mv file.{cpp,c} 上面的意思就是说把文件file结尾为cpp改成c文件格式 看下图
- linux mv修改文件名,linux命令mv - 移动或修改文件名
-b --backup的简单模式不接受参数 --backup[=CONTROL] 如果目标文件存在,覆盖前,给被覆盖的文件创建一个备份. -f 强制覆盖,不给用户提示确认的机会.有一定得危险性,同时也 ...
- Linux下批量修改文件名(rename)
1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修改文件名, 不过rename实在太方便了 比如把所有的表为cdb1_* 修改为cdb_*的 在本目录下 只需要# rena ...
- Java实现批量修改文件名
本文主要讲述如何通过 Java 语言实现批量多层级修改文件名. 现象描述 不知道伙伴们有没有遇到这样的问题:当你从网上下载一些资源的时候,每个文件名上都加上了一些推广信息 ⬇️ 更夸张的是,当下载的资 ...
- linux修改文件名的三种方法
文章目录 前言 一.用mv命令修改文件名 二.使用cp命令修改 三.使用rename命令修改 总结 前言 我们在使用linux系统过程中为了便于记忆或整理维护,经常需要对文件名进行修改,下面文章介绍了 ...
最新文章
- String与StringBuffer的区别
- 【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模
- Erlang/OTP设计原则(文档翻译)
- XP下卸载IE8还原到IE7的解决方法
- 【中山市选2009】【BZOJ2463】谁能赢呢?
- 一道面试题:用多线程求1000以内的素数有多少个?并给出消耗时间
- 【转载】MyBatis+MySQL 返回插入的主键ID
- Protobuf import文件导入其他proto
- WPF触发器(Trigger、DataTrigger、EventTrigger)
- Dell也来凑热闹,传将数月内发售Android手机Mini 3i
- 爬虫使用代理socks
- 深耕一线14年,见证云计算风起云涌
- 百度网盘,实现免费不限速,10M/S?都是假的
- 网络安全之僵尸网络与蠕虫的学习笔记
- 测试人员Testlink初级使用教程
- API网关之网关概述、技术选型
- UE4 指南针制作方法
- 三大原创IP首次合体亮相 乐元素聚乐中国“网络文学+ ”大会
- java将五元换成1元5角_C,一个代码来获得一笔钱转换成四分之一,硬币,镍币,便士[关闭]...
- R语言使用rgamma函数生成符合Gamma分布的随机数、使用plot函数可视化符合Gamma分布的随机数(Gamma Distribution)
热门文章
- windows虚拟机中没有摄像头的解决方法+win10开启摄像头方法
- 这个杀手不太冷 Léon (1994)
- 华为突然宣布鸿蒙,上鸿蒙!刚刚,华为突然宣布!
- Linux 简单入门
- 蛋白酶WSS1A/核酸内切酶MUS81/磷酸二酯酶TDP的DPC修复机制
- python中yield语句的作用_Python中关键字yield有什么作用
- 每台计算机用户都有一个独有的,因特网上的每台正式计算机用户都有一个独有的()...
- 为让代码注释更和谐,有人提议用拥抱替换 Fu*k
- 面试题:SQL语句的执行顺序
- 企业电子邮箱官网,企业电子邮箱地址大全