免费注册 查看新帖 |

Chinaunix

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

[文件目录] 怎么实现文件夹下文件名称模糊匹配替换? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-08 13:48 |只看该作者 |倒序浏览
我现在想实现一个小功能,文件夹下有很多命名有规则的文件:
20140108-01-1.txt
20140108-01-2.txt
20140108-01-3.txt
20140108-01-4.txt


20140108-02-1.txt
20140108-02-2.txt
20140108-02-3.txt
20140108-02-4.txt

20140108-03-1.txt
20140108-03-2.txt
20140108-03-3.txt
20140108-03-4.txt

20140108-04-1.txt
20140108-04-2.txt
20140108-04-3.txt
20140108-04-4.txt

20140108-05-1.txt
20140108-05-2.txt
20140108-05-3.txt
20140108-05-4.txt
我想写一个脚本实现一个功能,把*01-*替换为*02-*,*02-*替换为*03-*.......*05-*替换为*01-*,请问这个怎么实现啊?我的目录结构假如是多层的201401/20140108/,201401/20140107/ ... 我想在201401这层目录执行这个脚本?有童鞋帮忙瞅瞅吗?

论坛徽章:
36
摩羯座
日期:2013-09-23 16:37:312015年亚洲杯之沙特阿拉伯
日期:2015-04-14 09:10:172015亚冠之柏太阳神
日期:2015-06-25 08:48:212015亚冠之武里南联
日期:2015-07-28 09:01:082015亚冠之莱赫维亚
日期:2015-07-28 15:44:172015亚冠之柏斯波利斯
日期:2015-09-06 14:08:52白银圣斗士
日期:2015-11-25 17:06:2815-16赛季CBA联赛之吉林
日期:2015-12-09 16:59:072016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之辽宁
日期:2016-04-14 09:29:04luobin
日期:2016-06-17 17:46:3615-16赛季CBA联赛之天津
日期:2016-08-16 14:11:01
2 [报告]
发表于 2014-01-08 14:06 |只看该作者
按照文件这个规律用rename应该没问题

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
3 [报告]
发表于 2014-01-08 14:31 |只看该作者
回复 2# LikeLx

perl 版本的rename才有这个功能呢你像我的 rename
  1. man rename
  2. RENAME(1)                  Linux Programmer’s Manual                 RENAME(1)
复制代码
这是C版本的 没有 这个功能


   

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
4 [报告]
发表于 2014-01-08 15:22 |只看该作者
有点像循环日志命名?

论坛徽章:
29
程序设计版块每日发帖之星
日期:2016-02-29 06:20:0015-16赛季CBA联赛之天津
日期:2016-08-10 10:33:1115-16赛季CBA联赛之深圳
日期:2016-08-17 15:07:2015-16赛季CBA联赛之佛山
日期:2016-11-07 11:33:5015-16赛季CBA联赛之广夏
日期:2016-11-15 09:13:31CU十四周年纪念徽章
日期:2016-11-24 14:12:25极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之深圳
日期:2016-12-07 17:15:2715-16赛季CBA联赛之北京
日期:2016-12-22 09:30:0115-16赛季CBA联赛之深圳
日期:2016-12-22 10:49:2115-16赛季CBA联赛之山西
日期:2017-02-10 09:05:3215-16赛季CBA联赛之同曦
日期:2017-02-27 14:19:08
5 [报告]
发表于 2014-01-08 23:25 |只看该作者
本帖最后由 elu_ligao 于 2014-01-08 23:25 编辑
  1. #!/bin/sh -

  2. for (( i=5; i>0; --i ))
  3. do
  4.     find . -name "2014*-0$i-[0-9].txt" | xargs -i rename -0$i- -"x"$[i+1]- {}
  5. done

  6. find . -name "2014*-06-[0-9].txt" | xargs -i rename -06- -01- {}
复制代码
回复 1# 草_香


    如果只有你说的 01-05 的话,有06的你再改改

论坛徽章:
0
6 [报告]
发表于 2014-01-09 08:46 |只看该作者
直接重命名的话会覆盖掉文件的

比如 05 变成 01,那么 01 的文件就没有了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP