2014-03-31 3 views
1

특정 크기의 폴더 및 하위 폴더에있는 모든 이미지를 나열해야합니다. 예를 들어 320x200 인 모든 이미지를 말합니다. ls -R *.png 그 다음 출력을 파이프로 연결하여 그 크기의 이미지를 필터링합니다. 내 커맨드 라인 스킬이 풀이다. 아무도 도와 줄 수 있니? 고마워요!터미널에서 특정 크기의 이미지를 찾는 방법은 무엇입니까?

답변

1

당신은 sips 이미지에서 pixelHeightpixelWidth를 얻을 수 있습니다. 명령을 find과 결합하면 특정 크기의 이미지를 재귀 적으로 검색 할 수 있습니다.

:

results=$HOME/Desktop/results.txt 

find . -type f -name "*.png" -exec sips -g pixelHeight -g pixelWidth > $results {} \; 

cat $results | grep "\w\{11\}\:\s\(320\)" -B 1 -A 1 | grep "\w\{10\}\:\s\(200\)" -B 1 

RESULTS.TXT :

/Users/Me/Desktop/nsfw.png 
    pixelHeight: 320 
    pixelWidth: 200 

정보 :

  1. 처음 명령 resu 경로를 사용하여 변수를 설정
  2. 다음 lts.txt, 찾기 명령
  3. 마지막 우리 grep을 사용하여 특정 크기 (200 X 320)에 대한 검사를 RESULTS.TXT RESULTS.TXT 차원까지 발견 된 모든 이미지들의리스트를 기록한다.

이러한 명령은 세련 될 수 있지만 응축 될 수 있지만 그대로 작동해야합니다. (... 매뉴얼 페이지 존재 man mdls으로 표시 할 수있는)

mdfind, mdls 등 :에서라도에서

1

가 (스포트라이트 유사) 메타 데이터를 사용하여 더 도움 단말기 명령이다.

mdfind -onlyin /Users/hg/Pictures/2014/01/01 "kMDItemPixelHeight>1100 && kMDItemPixelWidth>900" 

(조금 : 어떤 픽셀 크기보다 큰 900 X 1100 (만이)에 해당 폴더의 모든 파일을 찾으려면 다음 예에서와 같이, mdfind을 시도하고 싶은 내용은 이상한 찾고) 쿼리 매개 변수 이름은 DataManagement -> 파일 관리 -> MDItemReference의 설명서에서 찾을 수 있습니다. 이러한 매개 변수 중 일부를 보려면 mdls filename을 시도하십시오.

관련 문제