2016-12-12 3 views
1

현재 MacOS (Sierra)에서 Exiftool이라는 명령 줄 유틸리티를 사용 중입니다. 본질적으로이 CLI를 실행하는 방법에는 여러 가지가 있지만 인터페이스에서 파일을 가리키고 파일에 대한 정보를 반환합니다. 반환되는 정보의 양을 제한하기 위해 간단히 인수를 추가 할 수 있습니다. 순간 응답 기준 중 하나가 충족되면 MacOS에서 CLI 응답 출력

, 여기에 내가 의사에 달성하기 위해 노력하고있어입니다 : - 특정 이미지 파일에 대해

실행 'exiftool'. 'Megapixels'값이> 0이면 'filename', 'OriginalDate'및 'Megapixels'을 반환합니다.

명령 '파일 이름'과 'OriginalDate'와 '메가 픽셀'을 반환은 단순히 : -

exiftool -filename -OriginalData -Megapixels myphotograph.jpeg 

어떻게 그러나 세 가지 값을 반환하기 전에 메가 픽셀 값을 확인합니까? 따라서 본질적으로 myphotograph.jpeg에 대해 exiftool CLI를 실행하고 Megapixels 값 (인수)이 0보다 큰 경우 해당 값과 추가 2를 반환하겠습니까? 결과는 궁극적으로 .csv 파일로 출력됩니다.

희망이 있습니다.

감사

답변

3

이 시도 :
exiftool -if '$Megapixels>1' -filename -DateTimeOriginal -Megapixels -cv FileOrDir

나는 이상을 1로 변경 모든 이미지가 한 일부 이미지 데이터가 0보다 큰 크기해야 할 것 때문에. 예를 들어 8x8 이미지는 0.000064 메가 픽셀로 표시됩니다. 선택을 제한하려는 숫자로 1을 변경하기 만하면됩니다.

나는 실제로 DateTimeOriginal을 의미하고 OriginalDate 또는 OriginalData이 아님을 가정합니다. Exiftool은 자신의 MIE format에 대한 태그로 OriginalDate만을 인식하며, 어쨌든 DateTimeOriginal에 매핑됩니다.

서브 디렉토리로 되풀이하려는 경우 -r을 추가하십시오.

직접 csv 파일을 생성하려면 -csv >/path/to/file.csv을 추가 할 수 있습니다. 전체 소스 경로 및 파일 이름이 포함 된 시작 부분에 추가 열이 추가됩니다. -p 옵션을보고 나만의 CSV 형식을 굴릴 수도 있습니다.

StarGeek의 대답은 윈도우에 더 우아하고, 휴대용,하지만 지금 awk로했을뿐만 아니라 그것을 공유 할 수 @
2

:

exiftool image.jpg | awk -F': ' ' 
    /^Create Date/{d=$2} 
    /^Megapixels/ {m=$2} 
    /^File Name/ {n=$2} 
    END{ if(m>0)print n,m,d }' OFS=',' 

출력

image.jpg,8.0,2015:08:16 14:39:45.275 
에게