디렉터리에 동일한 파일 이름을 가진 .xlsx 파일이 있는 경우 .pdf 파일만 삭제하시겠습니까?

디렉터리에 동일한 파일 이름을 가진 .xlsx 파일이 있는 경우 .pdf 파일만 삭제하시겠습니까?

법적 eDiscovery 시스템에서 대량으로 내보낸 수백 개의 폴더 pdf와 파일이 있습니다. xls(x)이러한 내보내기의 파일 이름은 bates #에 해당합니다(예 : ABCD_00000001.pdf, ABCD_00000002.pdf, ... , ) ABCD_00002000.pdf.pdf모든 xls(x)파일 - 둘 다 정확히 동일한 파일 이름을 갖습니다. 예를 들어 ABCD_00000005.xlsxediscovery 시스템에서 생성된 xlsx 파일이고, ABCD_00000005.pdf일괄 내보내기에서 생성된 관련 없는 빈 pdf 파일입니다.

이러한 외부 .pdf 파일은 일괄 내보내기를 실행하는 사람의 사용자 오류로 인해 발생할 수 있지만 일반적으로 프로세스의 이러한 측면을 제어할 수는 없습니다. 따라서 누군가가 수동으로 확인하도록 강요하지 않고 이러한 관련 없는 .pdf를 제거하는 상대적으로 쉬운 방법이 있는지 궁금합니다.

답변1

기본 이름을 추출하기 위해 매개변수 확장을 사용하여 PDF 파일을 반복합니다.

#!/bin/bash
for pdf in *.pdf ; do
    basename=${pdf%.pdf}
    if [[ -f $basename.xls || -f $basename.xlsx ]] ; then
        rm "$pdf"
    fi
done

고쳐 쓰다:내 논리는 거꾸로되어 있으므로 지금 수정해야합니다.

답변2

.xls(x) 파일을 반복하고 일치하는 PDF 파일을 삭제합니다.

for xls in *.xls* ; do
    /bin/rm -f "${xls%.xls*}"".pdf"
done

일치하는 PDF가 없어도 아무런 해를 끼치지 않습니다.

관련 정보