Linux文件批量改名/排序总结(rename,sort等)
来源:互联网 发布:飞狐交易师数据下载 编辑:程序博客网 时间:2024/06/16 05:27
linux下文件批量化改名时使用一些命令可以比较简单快捷
1. 文件名前补0
linux 下的rename命令可以使用正则表达式进行匹配。举例
for i in {1..100}; do touch ${i}.txt; done
在当前目录下生成文件
1.txt
2.txt
3.txt
...
10.txt
11.txt
100.txt
想要在前面都补上0,即变成
001.txt
002.txt
...
099.txt
100.txt
可以这样[1]
i=1001; for f in *.txt; do mv "$f" ${i#1}.png; ((i++)); done
其中i#1
是shell脚本中的字符串操作,即${string#substring}
是从变量$string
的开头, 删除最长匹配$substring
的子串。[2]
2. 文件名前去0
去掉上面文件前面的0直接使用rename
命令即可,即正则表达式(类似于vim中的正则匹配),把前面的0换成空
rename "s/^0{1,2}//g" *
3. 文件名排序
假设当前目录下有文件(仅说明情况,不在在意文件名后缀不同的小细节orz….)
我们想要排序成这样
1.txt
2.txt
3.txt
...
10.txt
11.txt
100.txt
使用sort命令
ls | sort -k1.1n
其意思是按照第一个域的第一个索引到第一个域的最后一个索引的数值顺序排序。之所以有域的概念是比如有下面这种情况排序(文件内容排序),这个时候就有三个域了,详细参考[3]
再比如有文件
ori_1.txt
ori_2.txt
...
ori_999.txt
则是
ls | sort -k1.5n
其实n
的也是sort
的一个参数,只不过可以写到参数k
里面,参考[4]中Clinton Pierce
和Dong Hoon
的回答
refer:
1. http://forum.ubuntu.org.cn/viewtopic.php?t=244095
2. http://blog.csdn.net/shamoqiuyin/article/details/51888390
3. 《sort命令的k选项大讨论》-linux命令五分钟系列之二十七 http://roclinux.cn/?p=1472
4. https://stackoverflow.com/questions/357560/sorting-multiple-keys-with-unix-sort
5. http://bbs.chinaunix.net/thread-3755930-1-1.html
6. rename http://blog.sina.com.cn/s/blog_63fd1bdb01013lv6.html
- Linux文件批量改名/排序总结(rename,sort等)
- linux rename批量改名
- 文件批量改名
- 文件批量改名
- 文件批量改名
- 用linux命令给文件批量改名
- Linux用rename给文件批量加后缀
- python脚本文件批量改名
- 批处理学习--文件批量改名
- C#文件批量改名
- python版文件批量改名
- mac 文件批量改名
- 对文件批量改名
- python文件批量改名
- linux rename总结
- 用PYTHON對文件批量改名
- MFC----文件改名CFile---rename
- linux之sort用法:排序/去重等
- 2017暑假集训 div1 DP(1)
- C语言基础之变量
- JAVADOC注释详解
- zabbix的Java API(一)
- Linux下一些文件操作和一些简单命令的自己实现
- Linux文件批量改名/排序总结(rename,sort等)
- Echrtart 数据对接
- 端口号心得
- nginx如何配置虚拟主机
- Ubuntu下Geth客户端搭建私有网络集群
- Verilog中wire与reg类型的区别(转载自http://www.cnblogs.com/farbeyond/p/5204586.html)
- Matlab导入整个文件夹目录下txt文档到数据库
- 将oracle远程数据库导出导入到本地
- HTTP常见状态码