LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]批量改文件名的问题....本版没见这类问题

[复制链接]
发表于 2004-6-13 15:28:55 | 显示全部楼层 |阅读模式
  1. [root@rh1 美_急诊室的故事第一季]# ls
  2. ?±??ê??êê? E.R.ep13.rmvb  ?±??ê??êê? E.R.ep22.rmvb                  ?±??ê??êê? E.R(μú???)_E.R.1994.CD3.rmvb
  3. ?±??ê??êê? E.R.ep14.rmvb  ?±??ê??êê? E.R.ep23.rmvb                  ?±??ê??êê? E.R(μú???)_E.R.1994.CD4.rmvb
  4. ?±??ê??êê? E.R.ep15.rmvb  ?±??ê??êê? E.R.ep24.rmvb                  ?±??ê??êê? E.R(μú???)_E.R.1994.CD5.rmvb
  5. ?±??ê??êê? E.R.ep16.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD10.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD6.rmvb
  6. ?±??ê??êê? E.R.ep17.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD11.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD7.rmvb
  7. ?±??ê??êê? E.R.ep18.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD12.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD8.rmvb
  8. ?±??ê??êê? E.R.ep19.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD13.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD9.rmvb
  9. ?±??ê??êê? E.R.ep20.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD1.rmvb   1
  10. ?±??ê??êê? E.R.ep21.rmvb  ?±??ê??êê? E.R(μú???)_E.R.1994.CD2.rmvb   2
复制代码

有没有命令可以只留文件的最后7个字符呢?比如
改成 14.rmvb 这样的名字从而实现批量改文件名的功能.,

这个我更本看不到他是什么编码 所以全部是乱码....太多这样的文件了...
 楼主| 发表于 2004-6-13 15:35:05 | 显示全部楼层
另外我想问1下 如果目录下有这样的乱码文件夹  我怎么把他重命名?
发表于 2004-6-13 17:06:12 | 显示全部楼层
发表于 2004-6-13 18:28:19 | 显示全部楼层
最初由 zBS 发表
另外我想问1下 如果目录下有这样的乱码文件夹  我怎么把他重命名?

建议把问题描述清楚,如:
1,挂载的文件名乱码?
2,字符模式还是图形模式?
这样的话,大家可以帮助你分析
 楼主| 发表于 2004-6-13 20:03:01 | 显示全部楼层
不是文件乱码,是不知道文件夹和文件的编码是什么.我现在系统的语言是en_US.UTF-8所以就能看到下面的目录.
[code]
[root@rh1 西剧]# ls
24小时反恐部队  十诫-连续剧     星际大战  美军作战史             美_急诊室的故事第二季  美_犯罪现场鉴证II  隐藏的真相
X档案全集       大西洋底来的人  白宫群英  美_急诊室的故事第一季  美_犯罪现场鉴证I       英剧BBC海洋探密    黑暗天使[code]
这些目录的编码我都是用iconv转换成utf8的.但是子目录不知道是什么编码怎么转都转不过来.怎么看都是乱码,cp936 gbk gb18030都4过了.
发表于 2004-6-13 20:11:31 | 显示全部楼层
你的locale也是utf8的吧~,
 楼主| 发表于 2004-6-13 20:21:10 | 显示全部楼层
是的,现在就是想办法把这个文件改名字算了 再手动改过来.
你看[code][root@rh1 美_急诊室的故事第一季]# ls |iconv -fgbk
录卤脮茂脢业墓脢脢脗 E.R.ep13.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep14.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep15.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep16.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep17.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep18.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep19.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep20.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep21.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep22.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep23.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep24.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD10.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD11.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD12.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD13.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD1.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD2.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD3.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD4.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD5.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD6.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD7.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD8.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD9.rmvb
1
2
[root@rh1 美_急诊室的故事第一季]# ls |iconv -fgb2312
录卤iconv: illegal input sequence at position 4
[root@rh1 美_急诊室的故事第一季]# ls |iconv -fgb2312
录卤iconv: illegal input sequence at position 4
[root@rh1 美_急诊室的故事第一季]# ls |iconv -fgb18030
录卤脮茂脢业墓脢脢脗 E.R.ep13.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep14.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep15.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep16.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep17.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep18.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep19.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep20.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep21.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep22.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep23.rmvb
录卤脮茂脢业墓脢脢脗 E.R.ep24.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD10.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD11.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD12.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD13.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD1.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD2.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD3.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD4.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD5.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD6.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD7.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD8.rmvb
录卤脮茂脢业墓脢脢脗 E.R(碌脷一录戮)_E.R.1994.CD9.rmvb[code]


PS:我在本版块看到很多改名字的,没有找到只保留文件名字后XXX个字符的例子,老大能直接指点下吗?现在临时抱佛脚,估计来不及了。
发表于 2004-6-13 20:25:41 | 显示全部楼层
改成啥样?
 楼主| 发表于 2004-6-13 20:34:35 | 显示全部楼层
改成
13.rmvb
14.rmvb............
这样,就ok了.. 先谢谢了
发表于 2004-6-13 20:40:16 | 显示全部楼层
哦~~~,这样可以么?

  1. for file in *.rmvb;do
  2.         echo $file|sed 's/.*\([a-zA-Z]\{2\}[0-9]\{1,\}.rmvb$\)/\1/'
  3. done
复制代码

结果应该是:
CD9.rmvb
ep13.rmvb
如果成功的话,再用:
mv $file $(echo $file|sed 's/.*\([a-zA-Z]\{2\}[0-9]\{1,\}.rmvb$\)/\1/')
否则,出现错误会有麻烦
ps:我测试的结果:
CD1.rmvb
CD10.rmvb
CD11.rmvb
CD12.rmvb
CD13.rmvb
CD2.rmvb
CD3.rmvb
CD4.rmvb
CD5.rmvb
CD6.rmvb
CD7.rmvb
CD8.rmvb
CD9.rmvb
ep13.rmvb
ep14.rmvb
ep15.rmvb
ep16.rmvb
ep17.rmvb
ep18.rmvb
ep19.rmvb
ep20.rmvb
ep21.rmvb
ep22.rmvb
ep23.rmvb
ep24.rmvb
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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