Разбор данных, выбор данных после и перед определенными символами - PullRequest
0 голосов
/ 19 ноября 2010

Я новичок в написании сценариев и программировании. Я ищу руководство о том, как я могу разобрать конкретную информацию из простого текстового файла с тысячами строк. Конкретно мне нужно разобрать адрес электронной почты из каждой строки. Линия выглядит примерно так:

"1272574001.H742765P10724.host.domain.com,S=4155:Return-path: `<email@email.com>`

Я хотел бы извлечь адрес электронной почты (исключая < и >), а затем выполнить обновление через mysql, указав адрес электронной почты в качестве значения.

Есть ли где-нибудь пример этого, который я мог бы использовать для обоснования своих потребностей?

Какой инструмент написания сценариев я бы использовал, как мне сказать этому инструменту захватить все содержимое МЕЖДУ < и >?

Как мне затем (в пределах одного скрипта) использовать это значение для обновления записи в БД?

p.s. По сути, я пытаюсь отписаться от этих адресов электронной почты в базе данных контактов ..

Оператор SQL, который нужно выполнить:

UPDATE contact_master SET subscribed='No' WHERE email=<value>

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Вы, похоже, ищете регулярные выражения. Я предлагаю прочитать man-страницу perlre (доступна онлайн здесь ), а затем сделать что-то вроде:

($addr) = /Return-path: `<([^>]+)>`/;
0 голосов
/ 20 ноября 2010
sed -n '`s/<\([^>]\+\)>`$/\1/' inputfile | while read -r address
do
    echo "UPDATE contact_master SET subscribed='No' WHERE email='$address'"
done | mysql databasename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...