특정 높이(500px 이상)의 png 이미지 파일을 찾으려고 노력해 왔습니다. 나는 이것이 file
이미지 크기를 반환한다는 것을 알고 있습니다. 예:
$ file TestImg1a.png
TestImg1a.png: PNG image data, 764 x 200, 4-bit colormap, non-interlaced
하지만 디렉토리에서 높이가 500px를 초과하는 모든 파일을 찾으려면 이 도구를 사용해야 합니다. 높이에 관계없이 모든 파일을 인쇄하는 방법을 알고 있습니다.
find . -name '*.png' | xargs file | awk '{print $7 " " $1}'
하지만 500보다 큰 결과에 대해 7달러를 제한하는 방법은 무엇입니까?
답변1
exiftool -q -r -ext png -if '$ImageHeight > 500' -p '$Directory/$FileName' .
답변2
나는 이것이 약간 과잉이라는 것을 알고 있지만 파일이 정보를 표시하는 방법에 관계없이 이것은 항상 작동합니다(파일 이름에 공백이 있더라도).
find . -name '*.png' -exec file {} \; | sed 's/\(.*png\): .* \([0-9]* x [0-9]*\).*/\2 \1/' | awk 'int($1) > 500 {print}'
사진과 문서의 크기를 인쇄합니다.
설명하다:
find
.png 아래에 *.png라는 이름의 모든 파일을 만들고 각 파일에 대한 파일을 만듭니다.sed
파일 이름과 크기만 인쇄한 다음 크기를 먼저 인쇄하도록 재정렬하는 데 사용됩니다 .awk
첫 번째 숫자(이미지 높이)를 테스트하는 데 사용됩니다 . 이 숫자가 500보다 큰지 확인하고, 인쇄 크기 및 파일 이름인 경우에는 아무 작업도 수행하지 않습니다.
답변3
ImageMagick을 사용할 수도 있습니다 identify
.
find . -name \*.png -print0|xargs -0 identify -format '%h %f\n'|
awk '$1>500'|cut -d' ' -f2-
또는 OS X에서는:
mdfind 'kMDItemFSName=*.png&&kMDItemPixelHeight>500' -onlyin .
답변4
find . -name '*.png' -exec file "{}" \+ | awk -F"(: +PNG image data|,| x )" '$4 > 500 {print $4" "$1}'