免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11796 | 回复: 7

shell如何对文件按数字文件名排序? [复制链接]

论坛徽章:
0
发表于 2012-06-29 07:19 |显示全部楼层
我有一系列文件在文件夹 /test目录下

file1_sc.txt
file2_cd.txt
file5_ss.txt
file8_ab.txt
file15_cc.txt

现在我需要循环处理这些文件,但是需要按照file字串后的数字进行顺序处理,该如何写这个循环?

大概如下,echo表示处理该文件

for file in `ls /test`
do
    echo $file
done

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2012-06-29 07:37 |显示全部楼层
回复 1# linfengfeiye
  1. echo 'file10_sc.txt
  2. file2_cd.txt
  3. file5_ss.txt
  4. file8_ab.txt
  5. file15_cc.txt' |sort -t "_" -k1.5n
  6. file2_cd.txt
  7. file5_ss.txt
  8. file8_ab.txt
  9. file10_sc.txt
  10. file15_cc.txt
复制代码

论坛徽章:
0
发表于 2012-06-29 07:51 |显示全部楼层
回复 2# yinyuemi


    管用,谢谢你,请前辈多多指教。
   
    发现sort和awk挺强大。

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
发表于 2012-06-29 08:21 |显示全部楼层
sort 第一列的话, -t "_" 是多余的。
  1. ls file*.txt |sort -k1.5n
复制代码

论坛徽章:
0
发表于 2012-06-29 09:08 |显示全部楼层
回复 2# yinyuemi


    发现不管用了,当数字超过一位时不行。

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2012-06-29 10:08 |显示全部楼层
回复 5# linfengfeiye


    没明白什么情况?

论坛徽章:
1
巳蛇
日期:2013-10-28 15:55:33
发表于 2012-06-30 21:36 来自手机 |显示全部楼层
ls -v 按版本号排序

论坛徽章:
0
发表于 2012-07-01 01:53 |显示全部楼层
回复 6# yinyuemi


    是我弄错了,是可以的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP