私はこの役立つスレッドで回答を調べましたが、私の問題は十分に異なっているようです(少なくともでsed
)。
次のような行を含む大きなCSVファイル(200 GB以上)があります。
<alphanumerical_identifier>,<number>
どこ<alphanumerical_identifier>
ファイル全体にわたって一意です。最初の列をインデックスで置き換える別のファイルを作成したい、つまり
<index>,<number>
私たちが得るように:
1, <number>
2, <number>
3, <number>
awk
メモリ内のファイル全体を読み込まなくても、増加するインデックスを生成できますか?
インデックスは単調に増加するため、単にインデックスを削除する方が良い場合があります。そのための解決策はそれとは異なりますか?すなわち:
<number>
<number>
<number>
このソリューションの実現可能性についてはわかりません。しかし、CSVファイルと同じ数の数値を別のファイルに生成し、CSVファイルの2番目の列をそのファイルに追加するだけではどうでしょうか。
—
Ramesh 2014
@Ramesh出力が正しい限り、これで問題ありません。
—
Amelio Vazquez-Reina
私は何かを誤解していると思います。それ以外の場合
—
G-Manは 'Reinstate Monica'を
awk -F, '{print ++n, $2}'
は機能します。またはawk -F, '{print $2}'
2番目のバリエーションの場合。
@ G-Man、それはおそらく
—
iruvar
FNR
同様ですが、同様に機能します++n
私はあなたが本当にそのUniq識別子を取り除くことができることをトリプルチェックします...なぜ最初の(3番目の)列をインデックスに追加しますが、それでも識別子を保持しませんか?その識別子は他の場所で使用されていませんか?
—
Olivier Dulac 2014