Scripting
有條件地刪除具有副檔名優先級的不同副檔名的重複文件?
我有一個很大的文件目錄,其中有重複的文件名但副檔名不同。我想做的是刪除重複項,但具有保留副檔名的優先順序。
因此,例如,如果我有 4 種文件類型 .aaa、.bbb .ccc、.ddd,如果沒有其他具有此名稱的文件,我只想保留 *.ddd,如果有,則保留 *.ccc沒有 *.aaa 或 *.bbb,如果沒有 *.aaa 則保留 *.bbb 並始終保留 *.aaa。
有沒有辦法做到這一點?
使用
zsh
,您可以執行以下操作:#! /bin/zsh - ext=(aaa bbb ccc ddd) # in order of preference. files=( *.$^ext(ND^/) ) typeset -A seen=() for f ($files) if (( seen[\$f:r]++ )) echo rm -f -- $f
(刪除
echo
如果高興)。