--regextrans2: Befehl nicht gefunden

--regextrans2: Befehl nicht gefunden

Ich habe imapsync 1.727 getestet, um imap von einer älteren Version von Zimbra (7.1.4) mit Version 8.7.7 zu synchronisieren und habe mit dem folgenden Befehl einen Fehler wie oben erhalten:

imapsync \
  --maxsize 52428800 --buffersize 8192000 \
  --nofoldersizes --nosyncacls --subscribe --syncinternaldates \
  --authmech2 PLAIN \
  --exclude '(?i)\b(Junk|Spam|Trash)\b' \
  --skipheader 'X-*' \
  --regexflag 's/\\\\(Answered|Flagged|Deleted|Seen|Recent|Draft)[^\s]*\s*//ig' --debugflags \
  --regextrans2 's,:,-,g' \
  --regextrans2 's,\",'\'',g' \
  --regextrans2 's,\s+(?=/|$),,g' \
  --regextrans2 's,^(Briefcase|Calendar|Contacts|Emailed Contacts|Notebook|Tasks)(?=/|$), $1 Folder,ig' \
  --host1 "$host1" --host2 "$host2" \
  --user1 "$username" --authuser1 admin_account_name \
  --password1 admin_account_password \
  --user2 "$username" --authuser2 admin_account_name \
  --password2 admin_account_password \
  --regextrans2 's,\",-,g' \ # change quotes to dashes
  --regextrans2 's,&AAo-|&AA0ACg-|&AA0ACgANAAo-(?=/|$),,g' \
  --ssl1 --authmech1 PLAIN --maxcommandlength1 16384 \
  --dry --debug --debugimap \

Warum ist es in Zeile 18 fehlgeschlagen, aber regtrans2 nicht in anderen Zeilen?

Antwort1

Auf eine Zeilenfortsetzung ist kein Kommentar in der gleichen Zeile folgt.

Das ist in Ordnung:

echo \
hello

Das ist nicht in Ordnung:

echo \ #newline here
hello

Im ersten Beispiel \wird der Zeilenumbruch durch maskiert und der ausgeführte Befehl lautet echo hello.

Im zweiten Fall \wird einfach das Leerzeichen dahinter entfernt und wir erhalten #newline hereals Ausgabe, gefolgt von der Fehlermeldung hello: not found [No such file or directory](oder ähnlichem).

Entfernen Sie also den Kommentar (alles, einschließlich des Leerzeichens nach dem letzten \) in der Zeile, die jetzt lautet

--regextrans2 's,\",-,g' \ # change quotes to dashes

Antwort2

Aus früheren Erfahrungen kann man schließen, dass es möglicherweise so aussieht, als müsste es speziell wie unten beschrieben neu angeordnet werden, damit es funktioniert.

imapsync \
  --dry \
  --host1 "$host1" --host2 "$host2" \
  --user1 "$username" --authuser1 admin \
  --ssl1 --authmech1 PLAIN \
  --password1 "$admin_account_password" \
  --user2 "$username" --authuser2 admin \
  --ssl2 --authmech2 PLAIN  \
  --password2 "$admin_account_password" \
  --maxsize 52428800 --buffersize 8192000 \
  --nofoldersizes --nosyncacls --subscribe --syncinternaldates \
  --authmech2 PLAIN \
  --exclude '(?i)\b(Junk|Spam|Trash)\b' \
  --skipheader 'X-*' \
  --regextrans2 "s,&AAo-|&AA0ACg-|&AA0ACgANAAo-(?=/|$),,g" \
  --regexflag 's/\\\\(?!Answered|Flagged|Deleted|Seen|Recent|Draft)[^\s]*\s*//ig' --debugflags \
  --regextrans2 's,:,-,g' \
  --regextrans2 's,\",'\'',g' \
  --regextrans2 's,\s+(?=/|$),,g' \
  --regextrans2 "s,^(Briefcase|Calendar|Contacts|Emailed Contacts|Notebook|Tasks)(?=/|$), $1 Folder,ig" \
  --regextrans2 's,\",-,g' \

verwandte Informationen