LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1251|回复: 6

想用shell程序改文件名

[复制链接]
发表于 2008-3-26 23:17:38 | 显示全部楼层 |阅读模式
我有个文件夹中的文件如下
37.周杰伦.龙拳.mp3                87.我的野蛮女友.i believe.mp3
38.张学友.如果这都不算爱.lrc      88.蓝色生死恋.主题曲.mp3
38.张学友.如果这都不算爱.mp3      89.S.H.E.恋人未满.mp3
39.伍佰.挪威的森林.mp3            90.莫文蔚.盛夏的果实.mp3
40.庾澄庆.春泥.mp3                91.张学友.祝福.mp3
41.蔡依林.海盗.mp3                92.蔡依林.看我72变.mp3
42.真的爱你.beyond.mp3            93.陶喆.I`m OK.mp3
43.蔡琴.被遗忘的时光.mp3          94.萧亚轩.最熟悉的陌生人.mp3
44.陈晓东.倩女幽魂.mp3            95.朴树.那些花儿.mp3
45.游鸿明.爱我的人和我爱的人.mp3  96.刘若英.一辈子的孤单.mp3
46.陈奕迅.爱情转移.mp3            97.周迅.飘摇.mp3
47.陈晓东.比我幸福.mp3            98.周传雄.忘记.mp3
48.许绍洋.花香.mp3                99.李天华.七天七世纪.mp3
49.周杰伦.断了的弦.mp3            Top100.jpg
50.刘若英.很爱很爱你.mp3
我想把前边的数字和点都去掉,不知道该怎么编
发表于 2008-3-27 12:40:45 | 显示全部楼层
用sed 来去掉数字和句号。
回复 支持 反对

使用道具 举报

发表于 2008-3-27 13:18:49 | 显示全部楼层
rename(1)
回复 支持 反对

使用道具 举报

发表于 2008-3-27 13:27:51 | 显示全部楼层
shell 下:
-------------------------------------
for f in *
do
mv $f ${f/???}
done
-------------------------------------

去掉文件名开头的三个字符。

如果你有 1.dkdk.mp3 这样的文件,会出问题.

这时可以用下面这个有些吓人的版本:
------------------------------------------------------------------
for f in *
do
mv $f $(echo $f | sed -s 's/^[0-9]\+\.//')
done
----------------------------------------------------------------
Good luck!
回复 支持 反对

使用道具 举报

发表于 2008-3-28 08:48:18 | 显示全部楼层
for i in *.mp3; do mv $i ${i/#*./}; done
回复 支持 反对

使用道具 举报

发表于 2008-3-28 11:51:51 | 显示全部楼层
Post by sssslang;1831876
for i in *.mp3; do mv $i ${i/#*./}; done

楼上的结果会是:
这个目录下最后只余下一个文件,名字叫 mp3,其它文件全都没有了。

很恐怖哟,楼主小心。
:yun:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 12:38:17 | 显示全部楼层
Post by whitelilis;1831943
楼上的结果会是:
这个目录下最后只余下一个文件,名字叫 mp3,其它文件全都没有了。

很恐怖哟,楼主小心。
:yun:
那该怎么写?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表