したがって、都市で構成された列を含む大きなファイルがあります。各都市のインスタンスの総数を見つけ、新しいファイルに表示するプログラムを作成したいと思います。どうすればいいですか?
これは例であり、これ以上の値があります
ファイルが次のような場合
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
これは正確に行をアルファベット順にソートすることを行います。
別の列の順序で必要ですか?最初の行を無視する必要がありますか?その場合は、都市名に複数の単語を含めることができるかどうかを教えてください。