--regextrans2: 未找到指令

--regextrans2: 未找到指令

我正在測試 imapsync 1.727 將 imap 從舊版本的 zimbra (7.1.4) 同步到版本 8.7.7,並使用以下命令收到如上所述的錯誤:

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 \

為什麼它在第 18 行失敗,而 regtrans2 在其他行失敗?

答案1

同一行上不能有一個續行,後面跟著註解。

還行吧:

echo \
hello

這是不行的:

echo \ #newline here
hello

在第一個範例中,\轉義換行符,執行的命令將為echo hello

在第二種情況下,只是\轉義了它後面的空格,我們得到#newline here輸出,後面跟著錯誤訊息hello: not found [No such file or directory](或類似的訊息)。

因此,刪除評論(一切\,包括現在讀取的行上最後一個 ) 之後的空格

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

答案2

根據以往的經驗,似乎必須像下面這樣專門重新安排,然後才能運作。

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' \

相關內容