首页 > 解决方案 > 如何grep除脚本中已有的其他文本

问题描述

我正在 bash 上制作一个过滤电子邮件脚本,我唯一的问题是我想要grep -c一个文本,除了Hotmail, Outlook, Gmail, Etc这里Other提供的示例脚本,

echo "Hotmail : `grep -c "@hotmail" $inputFile`"
echo "Outlook : `grep -c "@outlook" $inputFile`"
echo "Yahoo : `grep -c "@yahoo" $inputFile`"
echo "Gmail : `grep -c "@gmail $inputFile`"

我希望所有其他电子邮件,如@sbc、@mail.ru 或上面未列出的任何电子邮件都算作其他,谢谢

标签: bashgrep

解决方案


echo "Other : `egrep -vc '@(hotmail|outlook|yahoo|gmail)' $inputFile`"

-v 标志使 grep 仅 grep 模式未出现的那些行。
egrep 启用 (...|...|...) 替代方案。


推荐阅读