이미지를 종횡비별로 정렬한 다음 사용하고 싶습니다.다목적 승용차그것들을 탐색하면서 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
너무 느립니다 . 또한 옵션이 있으므로 이 출력을 얻기 위해 사용하고 싶지만 처리 방법을 모르겠습니다. 누구든지 도와주실 수 있나요?exiftool
exiftool
-r
exiftool
exiftool -r -s -ImageSize
답변1
잘 모르겠지만 셸 mpv
에서 zsh
일부 기준(예: 종횡비)을 기준으로 파일 목록을 정렬하려면 o+function
glob 한정자를 사용하여 확장에서 반환된 정보를 기준으로 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)를 기준으로 정렬된 파일 목록입니다.webp
r
1
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