Фильтровать текст между кавычками или <> - PullRequest
0 голосов
/ 05 ноября 2011

Мне нужно выражение, использующее SED или подобное, которое позволит получать текст между кавычками или символами больше или меньше.Я попробовал несколько вариантов SED , но не смог получить вывод только для списка доменов.

Matches: list:"<alumni.lists.org>"
Do this: Apply label "MailingLists" edit     delete
Matches: list:"w3.domain.org"
Do this: Skip Inbox, Apply label "MailingLists" edit     delete

Ответы [ 3 ]

1 голос
/ 05 ноября 2011

try:

Ввод:

Matches: list:"<alumni.lists.org>"
Do this: Apply label "MailingLists" edit     delete
Matches: list:"w3.domain.org"
Do this: Skip Inbox, Apply label "MailingLists" edit     delete

Команда:

sed 's/.*"\([^"]*\)".*/\1/;s/<\([^>]*\)>/\1/' file

Выход:

alumni.lists.org
MailingLists
w3.domain.org
MailingLists

РЕДАКТИРОВАНИЕ:

sed 's/.*"\([^"]*\)".*/\1/;s/<\([^>]*\)>/\1/' file | egrep "\.[a-z]{1,3}$"

Вывод:

alumni.lists.org
w3.domain.org

HTH Крис

1 голос
/ 05 ноября 2011

Это может сработать:

sed '/MailingLists/d;s/.*"<\?\([^">]*\)>\?".*/\1/;' input_file
0 голосов
/ 05 ноября 2011

Вы можете сделать это с помощью следующего регулярного выражения:

/<([^>]+)>|"([^"]+)"/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...