/tmp/usersファイルにユーザーリスト(各リストには異なるユーザーが含まれています)があります。
はい
more /tmp/users
root
kafka
yarn
hdfs
root
root
yarn
moon
apache
start
moon
apache
ファイル内のユーザーを印刷したいです。/tmp/ユーザー次のように計算します。
期待されるパフォーマンス
apache - 2
Hdfs - 1
Kafka - 1
Moon - 2
Root - 3
Start - 1
Yarn - 2
答え1
このパイプラインでこの結果を得ることができますが、最も均一なアプローチではないかもしれません。
sort /tmp/users | uniq -c | awk '{print $2 " - " $1;}'
sort
uniq
項目を処理できるように入力を並べ替えます。分類する必要があります。最終awk
報告書が作成され、整形手術になります。 (それなしで出力を比較してください。)
また、入力に空白行が含まれている場合はスキップすることもできます。perl
便利にご利用ください:
perl -lne 'print unless /^\s*$/' in | sort | uniq -c | awk '{print $2 " - " $1;}'
これも均質なPerlの1つのライナーです:
perl -lne '($s)=/(\S+)/; $a{$s}++ if $s; END {print "$_ - $a{$_}" for (sort keys %a)}' /tmp/users