私は多くのNBAデータを含むbashパイプラインで作業しています。 Cleveland Cavaliers選手の頻度を計算しようとしていますが、今私のコマンドは次のようになりますcut -d "," -f 2 nba2017-roster.csv | grep "CLE" | uniq -c
。出力はです15 "CLE"
。
私が望むのは15
、いいえです"CLE"
。どうすればいいですか?ありがとうございます!
答え1
UNIXでは、通常これを行う方法はいくつかあります。
スティーブン言及する最も直接的な方法は減らすgrepを使って計算することを好みますuniq -c
。
... | grep -c CLE
本当に欲しいなら維持するコマンドuniq -c
ラインの一部である場合は、「CLE」を削除する方法を見つけるか、数字だけを保持する必要があります。uniq
指定されたユーティリティ次の形式で数を返します。
"%d %s", <number of duplicates>, <line>
したがって、抽出する(多くの)オプションの1つ<number of duplicates>
は次のとおりです。
.... | uniq -c | awk '{print $1}'
...スペースで行を分割し、最初のフィールドを印刷するようにawkに指示します。
バラより生成された数値コマンド「uniq -c」を削除します。あなたの質問に対する結果です。