파일 이름은 중복되지만 확장자는 다른 큰 파일 디렉터리가 있습니다. 내가하고 싶은 것은 중복을 제거하지만 확장자를 보존하는 우선 순위를 갖는 것입니다.
예를 들어 *.aaa, *.bbb *.ccc, *.ddd 유형의 파일이 4개 있는 경우 해당 이름을 가진 다른 파일이 없으면 *.ddd만 유지되고 *.ccc가 있는 경우 *.aaa 또는 *.bbb가 유지됩니다. *.aaa를 사용할 수 없는 경우 *.bbb가 유지되고 *.aaa는 항상 유지됩니다.
이를 수행할 수 있는 방법이 있습니까?
답변1
이를 통해 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
).