0

私はプログラミングが初めてで、やりたいことは次のとおりです。

たとえば、私は持っています:

a@hotmail.com
b@hotmail.com
c@hotmail.com
g@gmail.com
s@gmail.com
h@msn.com
h@yahoo.com

最も頻繁に使用される 2 つの電子メール ドメインを見つける必要があります。例では、hotmail.comgmail.comです。

シェルスクリプトでそれを行うにはどうすればよいですか?

4

2 に答える 2

2

uniq -cアイテムのソートされたリスト内の各アイテムの数をカウントするために使用できます。これを武器に、適切に切り取り、並べ替えます。

$ cut -d @ -f 2 yourlist | sort | uniq -c | sort -rn

  3 hotmail.com
  2 gmail.com
  1 yahoo.com
  1 msn.com

$
于 2013-10-11T00:41:57.637 に答える
1

これで始めることができます。各ドメインの出現回数をカウントし、カウントの降順に並べ替えます。

awk -F'@' 'domains[$2]++{} END{ for (d in domains) print d, domains[d]; }' | sort -rnk2
于 2013-10-11T00:23:58.237 に答える