【Linux】 ファイルの重複した行を削除して、ファイルを結合する方法。

大容量の CSV ファイルの重複した行を削除して、ファイルを結合する処理を行ったときのメモです。

かなり大きいサイズのファイルなので、Python を使うと処理がかなり重くなってしまったので、Linux のコマンドで対応しました。

ファイルの重複行を削除

ファイルの重複した行を削除するには「uniq」コマンドを用います。

重複した行を削除して1行に集約してくれます。

ただし、これだと前後の行しか比較しないので、行を飛んで重複しているものは削除されません。

なので、uniq の前に「sort」コマンドを使用します。

実行すると、以下のようなエラーが出ました。

sort: write failed: /tmp/sortL1jRr2: No space left on device

メモリが足りないということのようなので、ランダムに抽出しファイルの容量を減らしてから実行しました。

元のファイルからランダムに行を抽出するには「shuf」コマンドを用います。

「-n」オプションで抽出する行数を指定します。今回は 5万行を指定しています。

ファイルを結合する

最後に、ファイルの結合を行いました。

今回は2ファイルの結合だったのですが、いくつでも可能だと思います。

cat」コマンドを用います。

関連記事

【Linux】ファイルの文字コードを一括変換する方法|EUC-JP ⇒ UTF-8

Linux で、あるディレクトリ内のファイルの文字コードを EUC-JP から UTF-8 に一括変

記事を読む

【Linux】ファイルの行数をカウントし、行数指定でファイル分割する方法。

Linux のコマンドを使って、ファイルの行数をカウントし、行数を指定してファイルを分割したときのメ

記事を読む

【Linux】WinSCP で Windows からファイルをコピーする方法。

今回は、WinSCP というソフトを使って、Windows から GUI で Linux のサーバに

記事を読む

【Raspberry Pi】Webサーバ apache を入れてみた【Linux】

ラズベリーパイで SSH を起動させ、Windows から SSH でアクセスできるように設定しまし

記事を読む

【Linux】cp コマンドでディレクトリごとコピーし、ファイルの上書き確認されないようにする方法

Linux で cp コマンドを使って、ディレクトリごとコピーし、同一ファイル名があった場合に上書き

記事を読む

【WSL】Windows10 に Linux(Ubuntu) を入れてみた。

最新の Windows10 環境であれば、簡単に Linux 環境を構築できるということで、試してみ

記事を読む

【Linux】指定ディレクトリ以下のファイルの内容を一括置換する方法

簡単なウェブサイトを Perl 作っていて、開発環境が Windows で、公開する環境が Linu

記事を読む

【Linux】ファイルの文字コードを調べる方法

Linux でファイルの文字コードを調べる必要があったので、その時のメモです。 いくつか方法が

記事を読む

【Linux】SSH を切断した後でも Python を実行し続ける方法|nohub

今回、Linux のサーバに Windows から TeraTerm で SSH 接続し、Pytho

記事を読む

【Linux】文字化け対策に unar のインストールを試みた。

Windows で圧縮したファイルを Linux で解凍すると、文字化けが起こってしまいます。文字化

記事を読む

【matplotlib】 Python で折れ線グラフを描く方法。

今回は、Python の matplotlib というライブラリを使っ

【Pandas】 loc・ilocで1行のみ Series ではなく DataFrame で抽出する方法。

Python の Pandas で DataFrame から loc

【Pandas】 DataFrame で2行の列ごとの差を計算する方法【Python】

今回は、Pandas の DataFrame で、2行間の列ごとの値の

【Pandas】 DetaFrame の列ごとに演算する方法【Python】

今回は、DetaFrame の列ごとに平均や加算・減算なのど演算をし、

【Pandas】 DataFrame の行を抽出する方法【Python】

今回は、Python の Pandas で、DataFrame 型の行

→もっと見る

PAGE TOP ↑