종횡비에 따라 이미지를 정렬하고 MPV를 사용하여 찾아보세요.

종횡비에 따라 이미지를 정렬하고 MPV를 사용하여 찾아보세요.

이미지를 종횡비별로 정렬한 다음 사용하고 싶습니다.다목적 승용차그것들을 탐색하면서 Google로부터 몇 가지 코드를 얻었습니다.

identify * | gawk '{split($3,sizes,"x"); print $1,sizes[1]/sizes[2]}' | sed 's/\[.\]//' | sort -gk 2

이것은 출력입니다:

28.webp 0.698404
1.webp 0.699544
27.webp 0.706956
10.webp 0.707061
25.webp 0.707061
9.webp 0.707061
2.webp 0.707241
22.webp 1.41431
23.webp 1.41431
24.webp 1.41431

그런 다음 필요에 맞게 몇 가지 조정을 했습니다.

identify * | gawk '{split($3,sizes,"x"); print $1,sizes[1]/sizes[2]}' | sed 's/\[.\]//' | sort -gk 2 | gawk '{print $1}' | mpv --no-resume-playback --really-quiet --playlist=-

작동하지만 완벽하지는 않습니다. 공백이 포함된 파일 이름을 처리할 수 없으며 특히 WebP 형식을 처리할 때 identify너무 느립니다 . 또한 옵션이 있으므로 이 출력을 얻기 위해 사용하고 싶지만 처리 방법을 모르겠습니다. 누구든지 도와주실 수 있나요?exiftoolexiftool-rexiftoolexiftool -r -s -ImageSize

답변1

잘 모르겠지만 셸 mpv에서 zsh일부 기준(예: 종횡비)을 기준으로 파일 목록을 정렬하려면 o+functionglob 한정자를 사용하여 확장에서 반환된 정보를 기준으로 glob을 정렬 할 수 있습니다 function.

예를 들어:

by_aspect_ratio() REPLY=$(
  exiftool -q -if 'printf "%d", $ImageWidth*1e8/$ImageHeight;0' -- $REPLY
)

print -rC1 -- *.webp(no+by_aspect_ratio)

종횡비 print(열의 aw)를 기준으로 정렬된 파일 목록입니다.webpr1 C

다음을 사용할 수 있습니다.

your-image-viewer -- *.webp(no+by_aspect_ratio)

정렬된 파일 목록을 즐겨 사용하는 이미지 뷰어에 전달하세요.

*.webp재귀적 으로 파일을 **/*.webp찾는 것으로 대체되었습니다 .webp

또는 GNU 유틸리티를 가정하고 질문의 최신 편집에 따라 쉘을 사용하십시오 exiftool.-r

exiftool -r -ext webp -q -if '
  printf "%g\t%s\0", $ImageWidth/$ImageHeight, "$directory/$filename";0' . |
  sort -zn |
  cut -zf2- |
  xargs -r0 your-image-viewer

관련 정보