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

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

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

ファイルの重複行を削除

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

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

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

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

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

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

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

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

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

ファイルを結合する

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

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

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

関連記事

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

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

記事を読む

【Linux】SSH でリモートからログインする方法。

SSH(Secure Shell)は、暗号化され、安全にリモートホストにログインするためのプロトコル

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

【TensorFlow】GPUを認識しない時の対処方法【Python】

TensorFlow で GPU を認識させようとしたときにハマってし

【耳コピ】音楽ファイルを楽器ごとに分離する方法【Spleeter:フリー】

今回は、mp3 などの音楽ファイルをボーカル、ベース、ドラムなどの楽器

【Chainer】手書き数字認識をしてみた【Deep Learning】

Chainerを用いて、ニューラルネットワークを構築し、手書き数字認識

【Spyder】引数のあるスクリプトを実行する方法。

Python の統合開発環境(IDE)である Spyder では、簡単

【Anaconda】Prompt 上で Git コマンドを実行する方法。

Anaconda のコマンドプロンプト(Anaconda Prompt

→もっと見る

PAGE TOP ↑