免费注册 查看新帖 |

Chinaunix

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

批量改文件名的问题(由长改短) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-09-16 09:07 |只看该作者

批量改文件名的问题(由长改短)

[quote]原帖由 "lxr01"]ls *.bak|awk -F"\." {printf("mv %s %s;",$0,$1)}'|sh[/quote 发表:


给定a.b.bak
这个脚本将会改名为:
mv a.b.bak a
而不是
mv a.b
因为此时$1是a

另外你的ls *.bak输出未必是一行一个文件, 可能你需要的是
ls -1 *.bak

论坛徽章:
0
12 [报告]
发表于 2005-09-16 09:32 |只看该作者

批量改文件名的问题(由长改短)

原帖由 "slimzhao"]  发表:
&& mv "$i" "${i/.bak}"
done
会有帮助

是改回来。
看题目

论坛徽章:
0
13 [报告]
发表于 2005-09-16 11:12 |只看该作者

批量改文件名的问题(由长改短)

ls -1 *.bak|awk -F"\.bak" '{printf("mv %s %s;,$0,$1)}'|sh

论坛徽章:
0
14 [报告]
发表于 2005-09-16 12:45 |只看该作者

批量改文件名的问题(由长改短)

原帖由 "sway2004009" 发表:

是改回来。
看题目


呵呵, 你也再看看我的代码
  1. find -maxdepth 1 -type f -name "*.bak" | while read i
  2. do
  3.   [ -f "$i" ] && mv "$i" "${i/.bak}"
  4. done
复制代码

我就是改回来呀, 即把a.bak改成a, 不对吗
i=a.bak
echo ${i/.bak}
显示的是a, ${i/.bak}不是要在变量i后面追加.bak, 相反是去除尾部的.bak

论坛徽章:
0
15 [报告]
发表于 2005-09-16 13:57 |只看该作者

批量改文件名的问题(由长改短)

看来方法很多啊,我先去琢磨一下,谢谢各位前辈解答。

论坛徽章:
71
15-16赛季CBA联赛之同曦
日期:2018-08-23 15:41:42辰龙
日期:2014-08-15 09:07:43狮子座
日期:2014-06-03 13:55:33亥猪
日期:2014-06-02 11:17:08巨蟹座
日期:2014-05-06 10:02:03午马
日期:2014-05-04 08:18:27亥猪
日期:2014-04-29 11:11:32技术图书徽章
日期:2014-04-24 15:51:26技术图书徽章
日期:2014-04-17 11:01:53辰龙
日期:2014-04-15 12:45:46亥猪
日期:2014-04-11 09:06:23射手座
日期:2014-04-01 15:28:10
16 [报告]
发表于 2005-09-16 20:09 |只看该作者

批量改文件名的问题(由长改短)

[quote]原帖由 "waker"][/quote 发表:


这个是linux下的用法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP