Команда Sed и неизвестные шаблоны найдены в сети

Мне нужна помощь с командой sed, в частности со следующим выражением:

sed -e 's/*(.*)//;s/>.*//;s/.*[:<]*//'

Я знаю, что s/pattern/replace / означает, что шаблон заменяется заменой, а когда замены нет, это означает, что шаблон просто удален (это правильно?). Кроме того, я где-то видел, что ".*" Соответствует чему-то жадному, а "[ ]" соответствует любому из его содержимого… Я думаю.

Кто-нибудь может помочь, пожалуйста? Что делают шаблоны *(.*) или же >.* или же .*[:<]* имею в виду?

1 ответ

Решение

От cat file | grep From: и передать вывод в вышеупомянутый sed По выражению лица я видел, что из этого ничего не вышло. Поэтому я решил заглянуть в сам код. я знал это .* соответствует что-нибудь жадное и что / // являются разделителями (от-до), я заметил, что последний блок, s/.*[:<]*//, Ничего не сделал. Поэтому я забрал это. Я также заметил, что второй блок, s/>.*//, забирал окончательный ">" от From: Name Surname <name.surname@somedomain>Я работал над первым блоком, s/*(.*)//, чтобы сделать так, чтобы он стирал начальное "<" и все, что перед ним. Я закончил с выражением sed -e 's/.*<//;s/>.*//' это превращает From: Name Surname <name.surname@somedomain> в name.surname@somedomain,

Другие вопросы по тегам