批量替换文件名中的一部分。

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
maniux
帖子: 179
注册时间: 2009-01-30 23:08

批量替换文件名中的一部分。

#1

帖子 maniux » 2009-11-12 13:43

论坛里有个帖子没看懂,也没学过正则……麻烦大家了。

有很多NCE1(1985 British accent)_01.mp3这样的文件,其中01这种数字不一样。想把所有文件名中的括号及里面内容去掉,怎么搞呢?模仿坛子里的帖子,写了这个,不行……

find -type f -exec sed -i 's/NCE1(1985 British accent)/NCE1/' {} \;
头像
Stupid kid
帖子: 416
注册时间: 2006-10-18 12:57

Re: 批量替换文件名中的一部分。

#2

帖子 Stupid kid » 2009-11-12 15:07

楼主试试rename吧,支持perlreg的,也许可行!

代码: 全选

$ rename 's/\(.*\)//' *.mp3
http://twitter.com/nothining
Mail: [email protected]
南京的开源活动几乎是0,希望能有人组织下(也可以拉我入伙^_^)
最近在从零开始学习Linux程序设计,加油……
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 批量替换文件名中的一部分。

#3

帖子 eexpress » 2009-11-12 15:39

gprename是gui的。可预演正则的结果。
● 鸣学
头像
maniux
帖子: 179
注册时间: 2009-01-30 23:08

Re: 批量替换文件名中的一部分。

#4

帖子 maniux » 2009-11-13 12:16

那个程序没有……额,我不是ubuntu的。
2楼的命令貌似不行,我不会改正则
抱歉,还行不行啊。
头像
jiening1017
帖子: 164
注册时间: 2007-05-29 21:58
来自: 大连

Re: 批量替换文件名中的一部分。

#5

帖子 jiening1017 » 2009-11-13 12:18

学习中…… :em03
理论上菜鸟也是鸟啊!
那就是说我是可以飞地,但是如果真飞不起来,我就去当鸵鸟...
http://www.netyi.net/in.asp?id=sincere1809
头像
Stupid kid
帖子: 416
注册时间: 2006-10-18 12:57

Re: 批量替换文件名中的一部分。

#6

帖子 Stupid kid » 2009-11-13 12:41

maniux 写了:那个程序没有……额,我不是ubuntu的。
2楼的命令貌似不行,我不会改正则
抱歉,还行不行啊。
:em04 我没测试过,呵呵,只是给你举个例子,让你知道rename可以改名的:-)
http://twitter.com/nothining
Mail: [email protected]
南京的开源活动几乎是0,希望能有人组织下(也可以拉我入伙^_^)
最近在从零开始学习Linux程序设计,加油……
头像
maniux
帖子: 179
注册时间: 2009-01-30 23:08

Re: 批量替换文件名中的一部分。

#7

帖子 maniux » 2009-11-13 13:02

Stupid kid 写了:
maniux 写了:那个程序没有……额,我不是ubuntu的。
2楼的命令貌似不行,我不会改正则
抱歉,还行不行啊。
:em04 我没测试过,呵呵,只是给你举个例子,让你知道rename可以改名的:-)
我目前没学过正则,看不懂啊~~~
onelynx
帖子: 817
注册时间: 2008-11-13 16:03

Re: 批量替换文件名中的一部分。

#8

帖子 onelynx » 2009-11-13 13:20

好像有些发行版的rename 是不接受 perl的正则表达式

至少 fedora 是这样的
头像
Stupid kid
帖子: 416
注册时间: 2006-10-18 12:57

Re: 批量替换文件名中的一部分。

#9

帖子 Stupid kid » 2009-11-13 13:21

http://twitter.com/nothining
Mail: [email protected]
南京的开源活动几乎是0,希望能有人组织下(也可以拉我入伙^_^)
最近在从零开始学习Linux程序设计,加油……
回复