如何递归的去掉目录中文件的扩展名 .bc!

sh/bash/dash/ksh/zsh等Shell脚本
回复
cvgmt
帖子: 322
注册时间: 2007-02-26 2:29
来自: 广东

如何递归的去掉目录中文件的扩展名 .bc!

#1

帖子 cvgmt » 2008-06-19 9:42

我原来用 BitComet 下载了一个 BT 文件,里面有很多目录,每个目录下有很多文件,很多都是没下载完的带 .bc! 扩展名的文件,现在想把这些扩展名都去掉,然后放在 Deluge 中下载,不知如何用正则表达式去做,请指教!(总共有几百的文件啊!)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#2

帖子 eexpress » 2008-06-19 9:55

find . -iname "*.bc!" -exec rename 's/.bc!$//' {} \;
● 鸣学
cvgmt
帖子: 322
注册时间: 2007-02-26 2:29
来自: 广东

#3

帖子 cvgmt » 2008-06-19 10:06

非常感谢您!以后一定好好学习脚本!
头像
白鳍豚
帖子: 2356
注册时间: 2009-01-19 23:03

Re:

#4

帖子 白鳍豚 » 2009-08-05 22:35

eexpress 写了:find . -iname "*.bc!" -exec rename 's/.bc!$//' {} \;
谢谢!
头像
lululau
帖子: 105
注册时间: 2007-05-28 11:17

Re:

#5

帖子 lululau » 2009-08-05 23:45

eexpress 写了:find . -iname "*.bc!" -exec rename 's/.bc!$//' {} \;
大虾,哪里能下到rename的源码啊?这个工具确实蛮方便的,可是我的系统上没有。。。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何递归的去掉目录中文件的扩展名 .bc!

#6

帖子 eexpress » 2009-08-05 23:51

☎ type rename
rename is /usr/bin/rename
☎ readlink /usr/bin/rename
/usr/bin/prename
☎ dpkg -S /usr/bin/prename
perl: /usr/bin/prename
● 鸣学
头像
daf3707
论坛版主
帖子: 12730
注册时间: 2007-06-13 15:57
来自: 在他乡

Re: 如何递归的去掉目录中文件的扩展名 .bc!

#7

帖子 daf3707 » 2009-08-05 23:58

:em09 看EE教学
头像
lululau
帖子: 105
注册时间: 2007-05-28 11:17

Re: 如何递归的去掉目录中文件的扩展名 .bc!

#8

帖子 lululau » 2009-08-06 0:08

我用不的不是linux,没这命令
刚刚网上搜了个,装上试了试好像跟这个rename不一样

代码: 全选

Usage: rename SOURCE DEST
   or: rename [OPTION] file ...
Rename SOURCE to DEST, or substitute characters match the specified pattern
in the filename.

  -l, --lowcase            lowcase the file names
  -u, --upcase             upcase the file names
  -s/PATTERN/STRING[/sw]   replace matching PATTERN with STRING, [sw] is
                           [g] replace all occurrences in the filename
                           [i] ignore case when searching
                           [b] backward searching and replacing
                           [s] change file's suffix name
                           [r] PATTERN is regular expression
                           [e] PATTERN is extended regular expression
  -R, --recursive          operate on files and directories recursively
  -o, --owner  OWNER       change file's owner (superuser only)
  -v, --verbose            display verbose information
  -t, --test               test only
  -h, --help               display this help and exit
  -V, --version            output version information and exit
      --yes  --no          force to choose YES or NO when target exists

See man page regex(7) for detail information about extended regular expression.

Report bugs to <xuming@bigfoot.com>.

tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 如何递归的去掉目录中文件的扩展名 .bc!

#9

帖子 tusooa » 2009-08-19 15:04

代码: 全选

19/08/2009 15:00:10
tusooa (~)
>> type -a rename
rename is /usr/bin/rename
19/08/2009 15:06:16
tusooa (~)
>> readlink /usr/bin/rename
/etc/alternatives/rename
19/08/2009 15:06:26
tusooa (~)
>> readlink /etc/alternatives/rename
/usr/bin/prename
19/08/2009 15:06:37
tusooa (~)
>> readlink /usr/bin/prename
19/08/2009 15:06:49
tusooa (~)
>> dpkg -S /usr/bin/prename
perl: /usr/bin/prename
19/08/2009 15:07:01
tusooa (~)
>>

代码: 全选

] ls -ld //
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: 如何递归的去掉目录中文件的扩展名 .bc!

#10

帖子 O_O_BOT » 2009-08-19 15:28

gnuwin for win
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
cocoready
帖子: 15
注册时间: 2009-08-13 12:11

Re: 如何递归的去掉目录中文件的扩展名 .bc!

#11

帖子 cocoready » 2009-08-19 22:03

在下才疏学浅,用一个最笨的方法来实现

for file in `find -name "*.bc"`
do
newlength=`expr ${#file} - 3`
NEWNAME=`expr substr $file 1 $newlength`
mv $file $NEWNAME
done

办法有点笨,但是还是可以实现。嘎嘎
回复