我有一堆电子邮件地址:
abc@google.com
bdc@yahoo.com
\\ ske@google.com
我想删除粗体线,因为除了@之外,字符串中还有额外的字符。和信件。我该怎么做?
答案 0 :(得分:2)
您可以使用此sed
:
sed -i.bak -n '/^[[:alnum:]]*@/p' file
答案 1 :(得分:2)
通过awk,
$ awk '/^\w+@\w+/{print}' file
abc@google.com
bdc@yahoo.com
Awk搜索以一个或多个单词字符开头的行,后跟一个@
符号,然后再跟一个或多个单词字符。如果发现任何,则打印整行。
此行\\ske@google.com
不会以单词字符开头,因此不会打印。
答案 2 :(得分:2)
您也可以使用vim
来处理它:
vim -c 'v/^[[:alnum:]]*@/d' -c 'wq' file
答案 3 :(得分:2)
您也可以使用perl模块:
perl -ne 'use Email::Valid; print if Email::Valid->address($_)'