Здравствуйте. В организации используем thunderbird, который берет при отправке письма берет почту и имя пользователя из АД. Так, например, manager.565@domain.ru это Иванов Иван. Пытаюсь отправить, пишу «Иванов», thunderbird подбирает, превращает в manager.565@domain.ru. Все хорошо.
Но при этом он еще и записывает почту в свою книгу «собранные адреса». Вроде удобный механизм - потом по имени можно находить всех, кому когда-то писал. Но если вдруг, Иванов Иван увольняется, а потом приходит либо однофамилец, либо он же, но уже в другой отдел, с другой почтой, то происходит путаница. Thunderberd находит Иванова и в сервере каталогов и в «собраных адресах». И почты разные. Какую он подставит - ему одному ведомо. Выход - чистить «собраные адреса» от неактуальных записей. Либо вручную, на что пользователи конечно забивают, либо как-то автоматизировать. Меня бы вполне устроил вариант, чтобы он в «собраные адреса» вообще не сохранял адрес@domain.ru. Но он так, похоже, не умеет.
Все собраные он хранит в файлике history.mab. В виде
<куча символов... (80=0)(82=1)(C9C=276)(83=manager.123@domain.ru) ... куча символов>
Если вручную удалить «manager.123@domain.ru», то в собраных адресах имя и фамилия остаются, почта удаляется, а при написании письма такой пользователь игнорируется. Собственно, что и хотелось.
Как можно с помощью sed реализовать такой алгоритм: ищем «domain.ru», ищем первый символ «=» ПЕРЕД найденным и удаляем все между ними?
Вот так вот sed -i 's/=.*@domain.ru//' history.mab удаляет логично с ПЕРВОГО «=» на строке до «@domain.ru».