24小时热门版块排行榜    

查看: 954  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sunshaobo133

新虫 (初入文坛)

[求助] Linux下文件重命名批处理 已有2人参与

大家好,我在服务器大量文件需要修改名称如:fsds_197901.nc文件需要修改为fsds_1979-01.nc
即,需要在年月之间加上-大家有什么好的方法吗?
小弟在此谢过!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zeppe

金虫 (小有名气)

【答案】应助回帖

假设你要改的文件名都是 若干非下划线字符+'下划线'+'四位数字年'+若干字符的形式,
可以用rename命令批量改名
rename 's/_([0-9][0-9][0-9][0-9])/_$1-/' *.nc
4楼2015-04-04 10:02:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

rojeeer

新虫 (初入文坛)

shell脚本处理咯
for file in 'ls
(rename file)
具体自己查吧,记不清楚了

[ 发自小木虫客户端 ]
2楼2015-01-20 22:44:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ZqCSky

铁杆木虫 (著名写手)

【答案】应助回帖

文件名字的长度相同吗?
for i in $(ls *nc);do seconde=${i:0-5};first=${i:0:9};do mv $i  $first"-"$seconde;done

如果名字长度不同,建议用perl

没有测试,思路是这样的,应该可以直接用。
使用前先备份
第二种也分为四种,分别介绍如下:
1、从左边第几个字符开始以及字符的个数,用法为:start:len,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
2、从左边第几个字符开始一直到结束,用法为:start,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${var:7}
其中的 7 表示左边第8个字符开始
结果是:www.你的域名.com/cut-string.html
3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str:0-15:10}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:cut-string
3、从右边第几个字符开始一直到结束,用法:0-start,例如:
str='http://www.你的域名.com/cut-string.html'
echo ${str:0-4}
其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:html
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
pymol 教程: http://pymol.chenzhaoqiang.com
3楼2015-01-25 15:04:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见