各テキストのインスタンス数を見つける方法は? [コピー]

各テキストのインスタンス数を見つける方法は? [コピー]

したがって、都市で構成された列を含む大きなファイルがあります。各都市のインスタンスの総数を見つけ、新しいファイルに表示するプログラムを作成したいと思います。どうすればいいですか?

これは例であり、これ以上の値があります

ファイルが次のような場合

City           
Manhattan   
Cork       
Manhattan  
Chennai
Chennai

出力はどのように見えるべきですか?

City
Manhattan 2 
Cork      1
Chennai   2

答え1

以下を使用してくださいdatamash

datamash -g1 -s -H count 1 < infile

出力:

GroupBy(City)   count(City)
Chennai 2
Cork    1
Manhattan   2

答え2

Linux 組み込みコマンドを使用sortし、次のようにしますuniq

cat DATAFILE | sort | uniq --count

これにより、次の内容が提供されます。

  2 Chennai
  1 City           
  1 Cork       
  2 Manhattan

説明する:uniqこれは通常、重複行を削除して単一のインスタンスのみを残すコマンドを使用します。追加の繰り返し回数をエクスポートするオプション「--count」を使用してください。これが機能するには、uniq行を並べ替える必要があります。そうしないと、必要に応じて重複項目が連続行に表示されません。 sortこれは正確に行をアルファベット順にソートすることを行います。

別の列の順序で必要ですか?最初の行を無視する必要がありますか?その場合は、都市名に複数の単語を含めることができるかどうかを教えてください。

関連情報