データセットで最も頻繁に表示される名前

データセットで最も頻繁に表示される名前
users     directory
----------------------
hjsyeh    hellodir ;
awgshd    newdir;
hjsyeh    hidir;
jkdhjk    welcomedir

上記には、ユーザーセットとそれらが生成するディレクトリがあります。 Unixシェルスクリプトで作成されたより多くのディレクトリを持つユーザーの合計を取得する方法は?

私の出力は

hjsyeh -2 directories

ベストアンサー1

あなたはそれを使用することができます

echo "hjsyeh hellodir ; awgshd newdir; hjsyeh hidir; jkdhjk welcomedir" | \
 sed -e "s/;\s*/\n/g" | awk '{print $1 }' | sort | uniq -c 

出力は次のとおりです。

  1 awgshd
  2 hjsyeh
  1 jkdhjk

編集する: 別の呼び出しで要求された形式で出力awk

echo "hjsyeh hellodir ; awgshd newdir; hjsyeh hidir; jkdhjk welcomedir" |                                                                
  sed -e "s/;\s*/\n/g" | awk '{print $1 }' | sort | uniq -c | 
  awk '{ printf "%s -%s directories\n" , $2 , $1  }'

出力:

awgshd -1 directories
hjsyeh -2 directories
jkdhjk -1 directories

おすすめ記事