
나는 다른 서버의 디렉토리에 있는 파일 변경 사항에 대한 보고서를 작성해야 하는 몇 가지 작업을 수행했으며 간단한 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를 사용하여 ls 출력을 Excel로 가져올 수 있도록 형식을 지정했습니다.
이 작업은 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