【发布时间】:2021-10-14 06:42:58
【问题描述】:
我想按宽高比对图片进行排序,然后使用MPV浏览它们,我从谷歌得到了一些代码:
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=-
它有效,但并不完美。它不能处理带空格的文件名,而且identify 比exiftool 慢,尤其是在处理WebP 格式时,此外,exiftool 有一个-r 选项,所以我想使用exiftool 来获得这个输出相反,但我不知道如何处理exiftool -r -s -ImageSize 的输出,有人可以帮助我吗?
【问题讨论】:
-
edit 你的问题要显示简洁、可测试的样本输入(如果是
identify *,则输出,而不是通过管道传输到你现有的 awk+sed 命令的输出,这些命令不能执行你想要的操作)以及在给定该输入的情况下您想要的最终预期输出。显然,如果您想从exiftool -r -s -ImageSize输出而不是identify输出开始,则显示该输出而不是identify *的输出作为示例输入。 -
图片没有Exif信息怎么办?
标签: shell sorting awk sed exiftool