프로그램에 의해 생성된 여러 개의 중복 파일이 포함된 디렉터리가 있습니다. 중복 항목은 이름이 동일하지만(번호 제외), 이름이 같은 파일이 모두 중복되는 것은 아닙니다.
중복을 제거하는 간단한 명령은 무엇입니까(이상적으로는 GNU coreutils에서 한 줄로 제한됨)스크립트에 대한 질문)?
파일 이름 예:
parra1998.pdf parra1998(1).pdf parra1998(2).pdf
답변1
빠르고 더러운 해결책은 파일을 해시한 다음 여러 번 나타나는 해시를 검색하고 파일 이름 번호에 대한 해시를 제거하는 것입니다.
예를 들어:
sha1sum * > files.sha1sum cat files.sha1sum | cut -f1 -d" " | sort | uniq -c | grep -v " 1 " | sed --regexp-extended 's/^[^0-9]+[0-9] //g' | xargs -n1 -I§ grep § files.sha1sum | sed --regexp-extended 's/^[^ ]+ +//g' | grep -v '(' | xargs -n1 -I§ rm "§"