Команда 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
,