Как определить, какой шаблон в файле соответствует grep? - PullRequest
0 голосов
/ 26 августа 2009

Я использую procmail, чтобы сделать обширную сортировку на моем почтовом ящике. Мой ближайший к последнему рецепту соответствует входящий От: (длинный) белый / золотой список исторически хороших адресов электронной почты и шаблонов адресов электронной почты. Рецепт:

# Anything on the goldlist goes straight to inbox
:0
* ? formail -zxFrom: -zxReply-To | fgrep -i -f $HOME/Mail/goldlist
{
  LOG="RULE Gold: "
  :0:
  $DEFAULT
}

Последний рецепт помещает все, что осталось в подозрительной папке, для проверки на возможный спам. Goldlist - это всего 7384 строки (yikes ...). Время от времени я получаю кусок спама, который проскальзывает, и я хочу исправить ошибочный шаблон. Я думал, что читал некоторое время назад о специальном флаге в grep, который помог показать подходящие шаблоны, но я не могу найти это снова. Есть ли способ использовать grep, который показывает шаблон из файла, который соответствует отсканированный текст? Или другой подобный инструмент, который ответил бы на вопрос, кроме написания сценария для сканирования шаблона по шаблону?

Ответы [ 2 ]

2 голосов
/ 26 августа 2009

Я не уверен, поможет ли это вам или нет. Существует параметр "-o" для вывода только соответствующего выражения.

со страницы руководства:

   -o, --only-matching
          Show only the part of a matching line that matches PATTERN.
2 голосов
/ 26 августа 2009

grep -o будет выводить только соответствующий текст (в отличие от всей строки). Это может помочь. В противном случае, я думаю, вам нужно написать скрипт-обертку, чтобы попробовать один шаблон за раз.

...