免费注册 查看新帖 |

Chinaunix

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

关于搜索各目录下的文件实现日期批量改名?求高手最简单方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-10 10:32 |只看该作者 |倒序浏览
Test 目录下有五个子目录:
test1
test2
test3
test4
test5
----------------------------
Test1 目录下的很多文件都是以abc.20100309102340 abc.20100310102332
Test2 目录下的很多文件是以abb.20100309102344 abb.20100310102354
Test3 目录下的很多文件是以acc.20100309102346 acc.20100310102364
Test4 目录下的很多文件是以acd.20100309102343 acd.20100310102354
Test5 目录下的很多文件是以aab.20100309102345 aab.20100310102334
------------------------------
我想问下,怎样做个自动更名的脚本,将这些文件去掉分秒,改成xxx.年月日.txt,

论坛徽章:
0
2 [报告]
发表于 2010-03-10 11:14 |只看该作者
本帖最后由 eboy240 于 2010-03-10 11:24 编辑

自己顶一下,曾经在单独目录下尝试过mv命令来修改,但好像不支持批量文件的改名
使用rename修改的话,就会丢失一个文件,所以很奇怪,难道是我的命令格式不对?
rename abc.* abc."`date "+%Y%m%d"`".txt abc.*
mv abc.* abc."`date "+%Y%m%d"`".txt <<----单个文件是可以,但批量就会出错。。。。 应该怎样做到批量呢???

论坛徽章:
0
3 [报告]
发表于 2010-03-10 11:15 |只看该作者
本帖最后由 dujie_m 于 2010-03-10 11:16 编辑
  1. ls -1 ./test?/* | awk '{print $0,substr($0,0,length($0)-4)}' | awk '{print "mv -i" $0}' | awk 'gsub(/[a-z]+\.[0-9]+$/,"&.txt")' > mvlist
复制代码
chmod u+x mvlist

执行前确认mvlist是不是想要的。。。确认后再执行

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2010-03-10 11:27 |只看该作者
find + for就可以了。

论坛徽章:
0
5 [报告]
发表于 2010-03-10 11:30 |只看该作者
回复 4# blackold


    具体代码怎么写???

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2010-03-10 11:40 |只看该作者
回复 5# eboy240

根据你的要求修改:

  1.     for i in $(find -type f -iname 'a*.2010*');do mv -i $i ${i%%??????};done
复制代码

论坛徽章:
0
7 [报告]
发表于 2010-03-10 11:44 |只看该作者
回复 6# blackold


    那如果是2011年呢??岂不是就失效了吗?

论坛徽章:
0
8 [报告]
发表于 2010-03-10 11:49 |只看该作者
本帖最后由 eboy240 于 2010-03-10 11:55 编辑

回复 6# blackold
改成这样

    for i in $(find -type f -iname 'a*.20*');do mv -i $i ${i%%??????}.txt;done
但会把同一目录下的其他文件覆盖,变成只有一个文件?怎样来去除这个bug?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2010-03-10 12:04 |只看该作者
回复 7# eboy240


    我不知道你的要求啊,上面不说根据你的要求你自己作适当的修改嘛。

论坛徽章:
0
10 [报告]
发表于 2010-03-10 14:35 |只看该作者
回复 9# blackold


    十分感谢,问题解决。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP