免费注册 查看新帖 |

Chinaunix

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

修改目录下多个文件的文件名 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之吉林
日期:2018-05-23 14:31:12
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-08 22:42 |只看该作者 |倒序浏览
本帖最后由 gtuiw 于 2012-02-08 23:11 编辑

一个目录下有下面这些文件

00 - Biggest Part Of Me0.flac
01 - Biggest Part Of Me1.flac
02 - Biggest Part Of Me2.flac
03 - Biggest Part Of Me3.flac
04 - Biggest Part Of Me4.flac
05 - Biggest Part Of Me5.flac
06 - Biggest Part Of Me6.flac
07 - Biggest Part Of Me7.flac
08 - Biggest Part Of Me8.flac
09 - Biggest Part Of Me9.flac
10 - Biggest Part Of Me10.flac


怎么才能将这些文件前面的数字和减号去掉,得到下面的结果

Biggest Part Of Me0.flac
Biggest Part Of Me1.flac
Biggest Part Of Me2.flac
Biggest Part Of Me3.flac
Biggest Part Of Me4.flac
Biggest Part Of Me5.flac
Biggest Part Of Me6.flac
Biggest Part Of Me7.flac
Biggest Part Of Me8.flac
Biggest Part Of Me9.flac
Biggest Part Of Me10.flac


谢谢先啦!

我之前的想法是将这些文件名重定向到文件上,然后再使用sed来进行更换。不过试了,我只能在更新重定向后的文件上,不能直接更换文件名
  1. ls * | while read file
  2. do
  3. sed -i aaa 's:/data/music/\([0-9]\{2\}\ -\ \)\(.*\.flac$\):\2:g' ${file}
  4. done
复制代码
上面是我写的,不过明显是错的!

论坛徽章:
0
2 [报告]
发表于 2012-02-08 23:27 |只看该作者
  1. ls | sed -n "s/^[0-9]\+\s-\s\(.*\)/mv \"&\" \"\1\"/e"
复制代码

论坛徽章:
1
15-16赛季CBA联赛之吉林
日期:2018-05-23 14:31:12
3 [报告]
发表于 2012-02-09 00:55 |只看该作者
本帖最后由 gtuiw 于 2012-02-09 01:03 编辑
yangkyo821 发表于 2012-02-08 23:27


,真是好用!

论坛徽章:
0
4 [报告]
发表于 2012-02-09 01:33 |只看该作者
收下代码,谢谢

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
5 [报告]
发表于 2012-02-09 09:31 |只看该作者
sed -r 's/^[0-9]{1,}\s-\s//g' urfile

论坛徽章:
1
15-16赛季CBA联赛之吉林
日期:2018-05-23 14:31:12
6 [报告]
发表于 2012-02-09 12:55 |只看该作者
bikong0411 发表于 2012-02-09 09:31
sed -r 's/^[0-9]{1,}\s-\s//g' urfile


你的这个只能修改文件里面的内容,而无法修改目录里多个文件的文件名.

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
7 [报告]
发表于 2012-02-09 15:34 |只看该作者
ls -1|awk '{print "mv ""\""$0"\""" ""\""$3,$4,$5,$6"\""}'|sh

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
8 [报告]
发表于 2012-02-10 08:42 |只看该作者
木有看清楚题目

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
9 [报告]
发表于 2012-02-10 09:31 |只看该作者
运行结果没问题后,把echo去掉就可以改名了
  1. ls *.flac|while read file
  2. do
  3.     echo mv "${file}" "${file#*-}";
  4. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP