2014-08-27 127 views
0

我正在寻找正则表达式来查找没有扩展名的文件夹(及其子文件夹)中的所有文件,并只将这些扩展名.mp3添加到这些文件中(即已经存在的文件有扩展不应该得到一个额外的)?正则表达式添加文件扩展名

例如:

测试制成请将test.mp3

test1.mp3保持原样

另外一个问题我已经是我的一些文件名有空格。

到目前为止,我使用的第一部分下面的表达式(与MAXDEPTH指定的文件夹结构方面的深度我想有):

find . -maxdepth 1 ! -name "*.*" -o -name ".*[^.]*" 

我无法工作,如何做的加法.mp3扩展名。

回答

1

下面的查找命令将递归重命名(将.mp3作为扩展名添加到这些文件中)没有任何扩展名的文件。

find . ! -name *.* -type f -exec mv {} {}.mp3 \; 
+0

谢谢,这完成了这项工作。我在{}周围添加了“...”。 – user2980038 2014-08-28 10:59:38

+0

引号不是必需的,因为shell在构造或执行由'-exec'指定的命令时没有手。 – chepner 2014-08-29 18:54:21

+0

谢谢,更新。 – 2014-08-29 19:07:24

0

以下命令将没有限制,只要-nono参数是本修改任何文件:

rename -v -nono 's{.+(\.mp3)?\Z}{.mp3}i' * 

rename(1)效用由“rename”包设置在Debian

相关问题