Как установить измененные метаданные файла равными созданным _значениям восстановленных изображений?

b () {
    arg=$1
    # more code here
}

updateEnvironmentField () {
    linewithoutquotes=`echo $LINE | tr -d '"'`
    b "$linewithoutquotes"
}

Здесь мы вызываем bс результатом подстановки вашей команды в виде строки. Функция bполучает строку в переменной arg.

Обратите внимание, что вы захотите использовать printfвместо echoи что вам нужно будет правильно заключать расширение $LINEв кавычки, чтобы пробелы, подстановочные символы и т. д. не искажали ваши данные (I Я также меняю обратные кавычки на $(...), так как это более корректно ):

.

updateEnvironmentField () {
    linewithoutquotes=$( printf '%s\n' "$LINE" | tr -d '"' )
    b "$linewithoutquotes"
}

Если вы используете оболочку bash, вы можете использовать замену параметра ${variable//pattern}для удаления двойных кавычек,

updateEnvironmentField () {
    linewithoutquotes=${LINE//\"}
    b "$linewithoutquotes"
}

или просто

updateEnvironmentField () {
    b "${LINE//\"}"
}

Связанные:

0
13.02.2021, 16:15
1 ответ

Вам понадобится инструмент EXIF ​​, чтобы получить временную метку создания изображения, а затем используйте touchдля соответствующей установки временной метки файловой системы.

Я только что попробовал этот сценарий оболочки (, например. ex.sh)под ArchLinux, где я установил perl -изображение -exiftool

#! /bin/bash

for fn; do
    ls -l "$fn"
    touch -m -t "$(exiftool -createdate -d '%Y%m%d%H%M.%S' -s3 "$fn")" "$fn"
    ls -l "$fn"
    echo "------------------"
done

Вы можете опустить строки echo и ls... ; они просто отображаются до и после временных меток файлов.

./ex.sh *.jpg

или

./ex.sh 01.jpg 02.jpg
2
18.03.2021, 22:30

Теги

Похожие вопросы