TimR75 Asked: 2022-07-12 06:48:46 +0800 CST2022-07-12 06:48:46 +0800 CST 2022-07-12 06:48:46 +0800 CST 有条件地删除具有扩展名优先级的不同扩展名的重复文件? 772 我有一个很大的文件目录,其中有重复的文件名但扩展名不同。我想做的是删除重复项,但具有保留扩展名的优先顺序。 因此,例如,如果我有 4 种文件类型 *.aaa、*.bbb *.ccc、*.ddd,如果没有其他具有此名称的文件,我只想保留 *.ddd,如果有,则保留 *.ccc没有 *.aaa 或 *.bbb,如果没有 *.aaa 则保留 *.bbb 并始终保留 *.aaa。 有没有办法做到这一点? scripting delete 1 个回答 Voted Best Answer Stéphane Chazelas 2022-07-12T07:39:35+08:002022-07-12T07:39:35+08:00 使用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如果高兴)。
使用
zsh
,您可以执行以下操作:(删除
echo
如果高兴)。