Chinaunix

标题: 怎么大批量修改文件名啊! [打印本页]

作者: xbdzsmc    时间: 2007-12-24 10:53
标题: 怎么大批量修改文件名啊!
我现在的文件名是2007-12-20 15-40-19.txt这种格式, 而且这个时间并不连续,也就是说上一个文件的下一个并不一定是2007- 12-20 15-40-20.txt. 我需要把它们的名字改为1,2,3......这样排下去,我的文件有好几千个,不可能手动去改!
高手帮帮忙啊
作者: mcumsigscr    时间: 2007-12-24 10:58
原帖由 xbdzsmc 于 2007-12-24 10:53 发表
我现在的文件名是2007-12-20 15-40-19.txt这种格式, 而且这个时间并不连续,也就是说上一个文件的下一个并不一定是2007- 12-20 15-40-20.txt. 我需要把它们的名字改为1,2,3......这样排下去,我的文件有好几千个, ...



写个shell 循环脚本可以实现
作者: xbdzsmc    时间: 2007-12-24 11:04
谢谢楼上的,我也这样想,但我是菜鸟,不会shell 编程啊, 能不能给具体说说.谢谢
作者: hahasasa    时间: 2007-12-24 11:16
你的排序原则(或者说特征)是什么?
困难在于排序,批量重命名不是问题!
作者: xbdzsmc    时间: 2007-12-24 11:47
我的名字规则是这样的:年-月-日(空格)时-分-秒.txt. 如2007-12-20 15-40-19.txt. 但是并不连续,也就是说19秒的下一个文件不一定是20秒.不过前边的"年-月-日",大家都一样.没关系,主要是后边的"时-分-秒"
另外,我的这个那个文件在前那个在后关系不大,只是一个统计而已,无所谓谁前谁后. 现在的问题是我希望把它们都改为name1.txt, name2.txt, name3.txt........... 这样我下边的事情才好做.
谢谢
作者: 寂寞烈火    时间: 2007-12-24 12:38
ls 2007*.txt|while read file;do ((++n));mv "$file" name$n.txt;done
作者: jamesr    时间: 2007-12-25 17:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: ylben    时间: 2007-12-26 12:27
#!/bin/csh -f

set intCount = 1

foreach name ( *.txt )
     mv ./"$name" ./$intCount.txt
     @ intCount++
end
作者: mcumsigscr    时间: 2007-12-26 15:17
原帖由 寂寞烈火 于 2007-12-24 12:38 发表
ls 2007*.txt|while read file;do ((++n));mv "$file" name$n.txt;done



简单易懂。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2