2013-02-20 47 views
0

我真的很抱歉,如果這已被回答 - 我找不到它。如何刪除Mac終端中的每個N:th文件?

我有一個目錄約。 35000個文件。對於每個文件都有兩個副本。他們按順序所有命名,比如:

0000001,0000002等

在上面的例子中的原始文件將被命名爲1,4,7,10,等

我如何刪除除原件之外的所有文件?

回答

0

據我瞭解Mac終端使用bash作爲shell。 以下shell命令將刪除你想要的(一切,除了1,4,7,10等)文件: 我假設文件編號000number.ext

shopt -s extglob; for file in [0-9]*; do number=${file%%.ext}; number=${number##+(0)}; if ((number%3 != 1)); then rm $file; fi; done 

一些評論:${file%%.ext}從刪除擴展文件使用特殊的bash語法從字符串中刪除後綴。如果你的文件沒有擴展名,你應該刪除這個命令。

${number##+(0)}從數字中刪除前導零(否則該數字將被shell視爲八進制數)。這需要設置extglob選項(因爲主腳本之前的shopt -s extglob)。

((number%3 != 1))僅適用於數字1,4,7,10(除以3得到餘數1)。

我建議你用RM運行此,以確保一切都如預期前檢查首先使用echo代替rm