私は手で検査することができない非常に大きなCSVファイルを持っています。また、それほど少数の列(例えば、100)もありません。それは列のいくつかの組み合わせでソートされているようですが、手作業でソート順序を決定するのは難しいです。(大)CSVの並べ替え順序を確認するにはどうすればよいですか?
これを行うのに役立つツールがありますか?
これは、標準のUNIXシェルユーティリティを使用して簡単に実行できる場合のボーナスポイントです。
私は手で検査することができない非常に大きなCSVファイルを持っています。また、それほど少数の列(例えば、100)もありません。それは列のいくつかの組み合わせでソートされているようですが、手作業でソート順序を決定するのは難しいです。(大)CSVの並べ替え順序を確認するにはどうすればよいですか?
これを行うのに役立つツールがありますか?
これは、標準のUNIXシェルユーティリティを使用して簡単に実行できる場合のボーナスポイントです。
-c
スイッチでsortユーティリティを使用し、各フィールドを確認できます。 「非常に大きい」大きさに応じて、各列ごとに1回行う必要があるため、時間がかかることがあります。ファイルが特定のフィールドでソートされていない場合、コマンドはかなり速く終了するはずです。例えば
:
sort --check -field-separator=',' --key=1
sort --check -field-separator=',' --key=2
あなたはすべてのフィールドのためにそれを行うために一緒にbashスクリプトを入れて、それぞれ1つがステータスを報告することができるはずです。
ファイルが複数のフィールドでソートされていると思われる場合は、上記を使用して主キーを検出し、その後の手順を繰り返して後続のキーを見つける必要があります。あなたはフィールドタイプをいじるが必要になる場合があります
sort --check --field-separator=',' --key=5,1
sort --check --field-separator=',' --key=5,2
... etc
注:上記はフィールド5が主キーであることが明らかになった場合たとえば、あなたは二次キーを使用してテストを開始します。たとえば、数値フィールドは、タイプを指定しない限り、テキストとしてソートされる(「10」は「2」の前に来る)。リンクされたマニュアルページのKEYDEFの説明を参照してください。
まあ、ソート順の最初のフィールドだけがソートされ、他のフィールドは以前のキー要素のすべての組み合わせに対してソートされます。 – einpoklum
@einpoklum:複数のフィールドでソートされていると思われる場合は、上記のキーを使用して主キーを検出し、その後のキーを検索する手順を繰り返します。たとえば、5がプライマリキーである場合、 'sort --check --key = 5,1' –
あなたの答えに入れたら、私はそれを受け入れます。 – einpoklum