我需要sed命令的帮助,尤其是以下表达式:
sed -e 's/*(.*)//;s/>.*//;s/.*[:<]*//'
我知道 s / pattern / replacement / 意味着模式被替换替换,当没有时替换这意味着只删除了模式(这是正确的吗?)。此外,我已经看到某个地方“。*”匹配任何贪婪的东西,“[]”是任何内容的匹配....我认为。
有人可以帮忙吗?模式*(.*)
或>.*
或.*[:<]*
的含义是什么?
答案 0 :(得分:-1)
通过cat file | grep From:
并将输出汇总到上面的sed
表达式中,我可以看到没有任何结果。所以我决定调查代码本身。我知道.*
匹配任何贪婪的东西,/ //
是分隔符(from-to),我注意到最后一个块s/.*[:<]*//
没有做任何事情。所以我把它拿走了。我还注意到第二个区块s/>.*//
正在进行决赛&#34;&gt;&#34;远离From: Name Surname <name.surname@somedomain>
,所以我在第一个块s/*(.*)//
上工作,以便它可以删除最初的&#34;&lt;&#34;以及它面前的一切。我最终得到了将sed -e 's/.*<//;s/>.*//'
转换为From: Name Surname <name.surname@somedomain>
的表达式name.surname@somedomain
。