Я играю с zsh, чтобы изменить время модификации изображения в соответствии с атрибутом exif «Date /Time Original».
Для этого я делаю одну команду:
PDATE=$(exiftool -p '$DateTimeOriginal' $PIC | sed 's/[: ]//g')
touch -t $(echo $PDATE | sed 's/\(..$\)/\.\1/') $PIC
Я получил несколько изображений с неправильным значением даты / времени оригинала, поэтому эти изображения не были обработаны.
Так что я работаю над получением даты из имени файла изображения, и я получил
for i in `grep -E -o 'IMG\S+jpg' logfile`; do
dte=$(echo $i | grep -E -o '20.{13}' | tr -d '_');
touch -t $dte $i;
done
где logfile - это файл, содержащий сообщения exiftool с неверным значением атрибута и т. д.
Теперь последняя команда второго фрагмента не работает, потому что мне нужно сделать подстановку sed, как в первом фрагменте.
Мой вопрос: находясь в интерактивном режиме zsh vi, как я могу получить доступ к первому фрагменту в истории, не теряя при этом содержимое текущей команды?
Я бы вообразил редактирование текущей команды в vi (как я могу это сделать, когда я нажимаю символ 'v' в режиме управления zsh vi), перечислив команду истории и выбрав одну из них, и она будет вставлена в строку ниже.