Похоже, вы используете Perl -совместимое регулярное выражение (PCRE )с sed
. Утилита sed
знает только основные регулярные выражения (BRE )по умолчанию (или расширенные регулярные выражения (ERE )при использовании с -E
в большинстве систем ).
Я также не думаю, что синтаксис sed
правильный, но его трудно читать, потому что выражение в вопросе, похоже, содержит в себе дополнительные *
. Кажется, вы хотите удалить составной разделитель в сообщении электронной почты, но, похоже, вас не заботит их правильное сопоставление (сопоставление начала одной составной части с соответствующим конечным разделителем ). Если бы синтаксис sed
был исправлен, выражение, скорее всего, удалило бы все содержимое электронных писем или объединило бы все вложения в тело сообщения.
Выражение PCRE
^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
совпадает с ERE (для использования сsed -E
)
^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3})?=$
и использование этого с d
(, которое вы, кажется, делаете ), чтобы удалить эти строки, но конечный / /g
в вашей команде sed
является ошибкой. Удаление / /g
, скорее всего, приведет к объединению всех вложений в тело письма.
Если вы хотите удалить вложения из сообщений электронной почты (, как указано в комментариях ),Я бы не стал пытаться сделать это с sed
, но с подходящим парсером сообщений электронной почты.
Примеры того, как это сделать, можно найти в следующих связанных вопросах:
Лично я бы написал Perl-скрипт, аналогичный тому, что приведен в первом связанном вопросе/ответе выше. Просто не забывайте всегда запускать тестовые прогоны таких скриптов на копиях ваших почтовых ящиков, на случай, если вы допустите ошибку.
Почтовый инструмент fdm
может фильтровать сообщения на основе количества и/или размера вложений, что может быть удобно для фильтрации больших сообщений электронной почты из архивных почтовых ящиков.
Are you sure you want to continue connecting (yes/no)?
Вы ответили на вопрос утвердительно? (буквально -да должно быть прописано)