2014-08-27 131 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

相關問題