Gram z zsh, aby zmienić czas modyfikacji obrazu zgodnie z atrybutem exif „Oryginalna data / godzina”.
W tym celu wykonuję jedno polecenie:
PDATE=$(exiftool -p '$DateTimeOriginal' $PIC | sed 's/[: ]//g')
touch -t $(echo $PDATE | sed 's/\(..$\)/\.\1/') $PIC
Mam kilka zdjęć z niewłaściwą wartością „Oryginalna data / czas”, więc te obrazy nie zostały przetworzone.
Pracuję więc nad pobraniem daty z nazwy pliku obrazów i mam
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
gdzie plik dziennika jest plikiem zawierającym komunikaty exiftool o niepoprawnej wartości atrybutu itp.
Teraz ostatnie polecenie drugiego fragmentu nie działa, ponieważ muszę dokonać podstawienia sed jak w pierwszym fragmencie.
Moje pytanie brzmi: będąc w trybie interaktywnym zsh vi, jak mogę uzyskać dostęp do pierwszego fragmentu kodu, który jest w historii, bez utraty treści bieżącego polecenia?
Wyobrażam sobie edycję bieżącego polecenia w vi (ponieważ mogę to zrobić, gdy naciskam znak „v” w trybie sterowania zsh vi), wyświetlenie polecenia historii na liście i wybranie jednego z nich, a zostanie ono wklejone w poniższym wierszu.