Ниже приведен сценарий bash для получения информации об изображении в каталоге. Нет вывода, мне просто было любопытно, как отображается / извлекается информация о файле.
getDPI(){
echo ${14};
}
getWidthHeight(){
echo ${18};
}
for file in *
do
fileInfo=$(file $file)
fileDPI=$(getDPI $fileInfo);
fileHeight=$(getWidthHeight $fileInfo);
done
Мне любопытно, что отображает информацию о файле? Я вижу fileInfo = $(file $file)
, но что это за данные отображаются? как это работает? это метаданные из файла?
Используйте man file
, чтобы увидеть, что делает команда file
, или введите file somefilename
, чтобы увидеть пример вывода.
Остерегайтесь - этот скрипт не будет работать с файлами с пробелами в имени - посмотрите, что происходит в OSX, когда вы делаете снимок экрана ... Screen Shot 2021-03-24 at 10.26.04 am.png
И этот сценарий не выглядит слишком портативным ... вот результат Screen Shot 2021-03-24 at 10.26.04 am.png: PNG image data, 1880 x 584, 8-bit/color RGBA, non-interlaced
. Не похоже, что параметр 14 будет иметь правильное значение.
И не всем это понравится - IMG_0061.jpg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=11, manufacturer=Apple, model=iPhone XR, orientation=upper-right, xresolution=162, yresolution=170, resolutionunit=2, software=13.3.1, datetime=2020:04:01 12:36:57, GPS-Data], baseline, precision 8, 4032x3024, components 3
Это синтаксис для установки переменной для вывода команды.
file $file
выполняет командуfile
, и ее выходные данные помещаются в переменнуюfileInfo
.