huck

10万行以上の大量テキストデータから重複行をたった1秒で削除する方法

N112_nayandahyoujyou500

大量のCSVデータの中から重複行を削除するときってどうしてます?
エクセルだと全行開けないし、わけわからない関数とか書けないし、動作は重いし、あーどうしようって場合ありませんか。

こんな悩みともスキっと解決おさらばな方法があります。
この方法はエクセルを使わずに、なんとたった1秒であっという間に重複行が削除できるんです。

サクラエディタでサクッと削除

サクラエディタとは、ウィンドウズのために開発された高機能な日本語テキストエディタです。もとから高機能なんですが、外部機能を追加することで、さらに進化するテキストエディタです。メモ書き程度からプログラム作成まで幅ひろく使えます。

しかも無料。

こんな高機能で無料っていいんですか。いいんです。

サクラエディタのダウンロードはこちら
http://sakura-editor.sourceforge.net/download.html

たったの3ステップでサクッと削除

データをサクラエディタにコピーしたら下記手順で重複行を削除。

    1. 手順1 Ctl + a 全選択
    1. 手順2 alt + a 昇順に並べ替える
    1. 手順3 alt + m マージ

たったこれだけです。
実際に13万行の住所データで試したところ見事に重複行が削除されました。
ほんと、感動的に楽でした。

注意点としては、前後に並んだ行のみが削除対象になります。手順3を実行する前に、できるだけデータの並び替えをしておきましょう。

差分を確認するには

実際にどの行が重複行なのかを確認することも可能です。この差分確認、diff機能を有効にするには、拡張機能のdiff.exeが必要。

diff.exe ダウンロード
http://www.geocities.jp/maru3128/sakura.html

解凍後、サクラエディタのフォルダにdiff.exeを入れると機能が有効になります。

差分を抽出するには

場合によっては重複行を抽出したい場合もあると思います。
そんな時は、WinMerge を私は使っています。

WinMergeは2つのファイルの相違点を表示してくれるソフトです。
元データファイル と サクラエディタでマージしたデータファイル を使用して、相違点つまりサクラエディタで重複行として削除された行だけを抽出します。

表示>diffコンテキスト>0
で重複行のみが表示されます。

WinMerge
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html

サクラエディタ

サクラエディタはかなり高機能テキストエディタです。マクロ機能、複数ファイルにまたがってのgrep機能など、この高機能ぶりは使いこなせそうにないw

でもウィンドウズユーザーならサクラエディタは入れておいて損のないテキストエディタです。

サクラエディタのダウンロードはこちら
http://sakura-editor.sourceforge.net/download.html

ABOUT ME
matonako
昭和45年生。お仕事はEC系。 嫁、セキセイインコ、魚多数と暮らす。家が大好き。休日はインドア派。 ブログはもっぱら趣味のガンプラ作り、自転車、写真、カメラ、コーヒー、軽登山について。 最近気になるモノ:盆栽、ジャズ、アナログ・レコード、インテリア、ガンプラ