메타데이터가 누락된 PDF 파일 나열

메타데이터가 누락된 PDF 파일 나열

한때 나는 다른 서버의 디렉토리에 있는 파일 변경 사항을 보고해야 하는 몇 가지 작업을 수행했으며 간단한 Unix 명령을 사용하여 보고서를 작성했습니다. 나는 다음을 사용했다:

ls -R -lT /Volumes/www/subdir/ | awk '{if ($7=="" ) print $0; else print $11";"$7"/"$8"/"$10;}' > /Users/[username]/Desktop/output.txt 

이제 메타데이터가 누락된 모든 PDF 파일에 대한 보고서를 작성해야 합니다. 파일의 메타데이터를 확인하고 메타데이터가 누락된 파일만 출력하는 방법(현재 접근 방식과 유사)이 있는지 궁금합니다. 데이터를 Excel로 가져올 수 있도록 ls 결과를 파일로 파이프하고 싶습니다. 다른 보고서에서는 awk를 사용하여 Excel로 가져올 ls 출력 형식을 지정했습니다.

이 작업은 Mac에서 수행되며 사무실 하드웨어에 소프트웨어를 설치할 수 있는 관리자 권한이 없으므로 설치하는 것보다 내장된 명령을 사용하는 것을 선호합니다.

고쳐 쓰다: 보고서는 PDF뿐만 아니라 앞으로는 다른 파일 형식도 보고하도록 수정될 예정입니다. 따라서 보고서는 하나 이상의 파일 형식을 검색할 수 있습니다.

지금 확인해야 할 메타데이터는 다음과 같습니다.

  • 제목
  • 작가
  • 주제
  • 핵심 단어

다음을 사용하여 파일 메타데이터를 성공적으로 나열했습니다.

mdls [path to file]

그러면 모든 메타데이터 목록이 생성됩니다. 메타가 채워진 PDF와 메타가 채워지지 않은 PDF로 테스트했습니다. 메타데이터가 누락되어 null을 반환하는 대신 메타키가 전혀 나열되지 않는 것으로 나타났습니다.

내가 현재 시도하고 있는 것들은 다음과 같습니다:

mdfind -onlyin /Volumes/web/ "kMDItemAuthors == ''"

이 데이터를 사용하여 출력을 필터링하려면 어떻게 해야 합니까?ls

고쳐 쓰다: 다음을 사용하여 모든 PDF가 나열된 보고서를 얻었습니다.

ls -R -lT [server directory path] | grep ".[file extension]" | awk '{print $11";"$7"/"$8"/"$10;}' > [output file path] 

이 작업의 한 가지 부작용은 ls의 재귀 속성을 잃게 된다는 것입니다. 아직 작업 중입니다.

또한 필수 메타데이터가 누락된 콘텐츠만 필터링하는 방법도 찾아야 합니다. 또한 모든 메타데이터가 포함된 PDF 보고서도 만들어야 한다는 말을 들었습니다. 현재 명령을 사용하고 출력을 먼저 mdfind로 파이핑한 다음 awk로 파이핑해 보았지만 뭔가 빠진 것 같습니다.

답변1

사용내보내기 도구.

-T -FilePath확장자 pdf( -r) 가 있고 /search/path지정된 메타데이터가 비어 있는( ) 모든 파일의 전체 경로를 반복적으로 인쇄하려면 다음을 사용합니다.

exiftool -T -FilePath \
         -if '$FileTypeExtension eq "pdf"' \
         -if '(not $Title) or (not $Author) or (not $Subject) or (not $Keywords)' \
         -r /search/path

향후 요구 사항에 맞게 명령을 사용자 정의하세요.

답변2

find(1)보다 일반적인 것을 원한다면 다음과 같이 파일을 확인한 다음 각 대상에서 차례로 실행하는 프로그램/스크립트를 만들어야 합니다 .

find . -name "*.pdf" -exec check \;

항상 성공(0)을 반환 check file하고 필요한 경우 문제의 파일 이름을 인쇄하십시오. 또는 파일이 손상된 경우 위의 내용을 조정하여 성공을 반환한 후 다음을 수행하십시오.

find . -name "*.pdf" -exec check \; -print

관련 정보