免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: aquino
打印 上一主题 下一主题

文件的批量改名求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-28 10:13 |显示全部楼层 |倒序浏览
我有一系列文件, 如下:
00.asf
01.asf
...
56.asf
57.asf
...
63.asf
64.asf
65.asf
...
99.asf
共100个

我想要将文件名依次+1, 比如原来的00.asf 改为01.asf, 56.asf改为57.asf, 57.asf -> 58.asf, 依此类推。

我所想到的思路就是

#for f in `ls -r | head -100` ; do mv $f `echo $f | sed 's/.asf//g' +1 .asf; done

我就是不晓得+1那里是怎么实现的。

多谢指教。

论坛徽章:
0
2 [报告]
发表于 2003-03-28 22:46 |显示全部楼层

文件的批量改名求助

[quote]原帖由 "doni"]use expr[/quote 发表:


用expr的话,符号``岂不要嵌套?嵌套可以么?

论坛徽章:
0
3 [报告]
发表于 2003-03-28 23:38 |显示全部楼层

文件的批量改名求助

原帖由 "doni" 发表:
#for f1 `ls -r | head -100`
  do
    f2=`echo $f1| sed 's/.asf//g' `
    f3=`expr $2 + 1`
   mv f1 f3.asf
done


谢谢。

我现在就是这样用的,我的意思是,如果要将整个脚本写成一行能不能行?就是``嵌套那里不晓得咋整。

论坛徽章:
0
4 [报告]
发表于 2003-03-29 11:07 |显示全部楼层

文件的批量改名求助

[quote]原帖由 "红袖添香" 发表:
ls -r | head -100`; do f2=`echo $f1| sed 's/.asf//g' `; f3=`expr $2 + 1` ; mv f1 f3.asf; done

这个 in 是少不了的,另外 `ls -r | ...`  得到的,文件名有空格时,会出错... 解决的办法是很简单的,就不说
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP