免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 17739 | 回复: 37
打印 上一主题 下一主题

上万文件排序改名-求单行解决方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-06 09:49 |只看该作者 |倒序浏览
HI:
麻烦问下,当前目录有1万文件,需要按从小到大排序,然后改名成1~10000.
用shell脚本、用循环完成是没问题的。
但觉得太麻烦了。尝试用awk、eval等命令单行解决,始终没成功,求高手指点下。

论坛徽章:
0
2 [报告]
发表于 2011-05-06 10:01 |只看该作者
  1. [root@bill test2]# ls -lrS
  2. total 16
  3. -rw-r--r-- 1 root root  5 Apr 23 21:32 test1.txt
  4. -rw-r--r-- 1 root root 10 Apr 23 21:33 test2.txt
  5. -rw-r--r-- 1 root root 15 Apr 23 21:33 test3.txt
  6. -rw-r--r-- 1 root root 20 Apr 23 21:36 test0.txt
  7. [root@bill test2]# ls -lrS|grep -v total|awk 'i+=1{print "mv " $NF" " i}'|sh
  8. [root@bill test2]# ll
  9. total 16
  10. -rw-r--r-- 1 root root  5 Apr 23 21:32 1
  11. -rw-r--r-- 1 root root 10 Apr 23 21:33 2
  12. -rw-r--r-- 1 root root 15 Apr 23 21:33 3
  13. -rw-r--r-- 1 root root 20 Apr 23 21:36 4
复制代码
看符合要求吗?
如果要使用的话,先测试!

论坛徽章:
0
3 [报告]
发表于 2011-05-06 10:08 |只看该作者
ls -lSr|sed 1d|awk '{print "mv "$NF,NR}'|sh

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
4 [报告]
发表于 2011-05-06 10:08 |只看该作者
回复 1# tdyne


    考虑带空格的文件的话:
  1. ls -lSr *.* |awk '{printf "mv \""; for(i=9;i<NF;i++) printf $i FS; print $NF"\" "++j}' |sh
复制代码

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
5 [报告]
发表于 2011-05-06 10:12 |只看该作者
ls -Sr | { i=1;while read f;do mv -f "$f" $i;let i++;done;}

论坛徽章:
0
6 [报告]
发表于 2011-05-06 10:22 |只看该作者
好贴

论坛徽章:
0
7 [报告]
发表于 2011-05-06 10:39 |只看该作者
本帖最后由 tdyne 于 2011-05-06 10:41 编辑

感谢楼上各位的支持!最后经过测试,完成功能的命令如下:
ls -S|awk '{print "mv",$1,NR}'|sh
--要特别感谢dzhxc (凡心爱),从前没见过|sh的用法,学习了--

论坛徽章:
0
8 [报告]
发表于 2011-05-06 10:42 |只看该作者
ls -l | sort -n -k5 | awk '{system("mv "$8" "NR-1"")}'

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
9 [报告]
发表于 2011-05-06 10:47 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2011-05-06 10:51 |只看该作者
感谢楼上各位的支持!最后经过测试,完成功能的命令如下:
ls -S|awk '{print "mv",$1,NR}'|sh
--要特别感 ...
tdyne 发表于 2011-05-06 10:39



    此命令行不满足你要求的从小到大排序,也没有考虑文件有空格的情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP