Files
按大小查找圖片:find/file/awk
我一直在嘗試找到一定高度(超過 500 像素)的 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}'
但是我如何將 7 美元限制為大於 500 的結果?
我知道這有點矯枉過正,但是,這每次都會起作用(即使您的文件名中有空格)並且無論文件如何顯示資訊。
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,如果是列印尺寸和文件名,則不執行任何操作。
exiftool -q -r -ext png -if '$ImageHeight > 500' -p '$Directory/$FileName' .