

No.3ベストアンサー
- 回答日時:
100万行ではやっていませんが、以下のようなスクリプトを書いて実行すると、以下の結果が得られます。
スクリプト(dup.plの名前のファイルに格納します)
--------------------
# 使用方法
#
# perl dup.pl メールアドレスリストファイル
# 機能:重複しているメールアドレスを表示する
# 結果は画面に出力される。
#メールアドレスをテーブルに登録(件数もカウントする)
while(<>){
chomp $_;
$addr{$_} += 1;
}
#1つのメールアドレスが2件以上のものを出力する。
while( ($key,$val) = each(%addr)){
if ($val >= 2){
printf("重複メール=<%s> %d件\n",$key,$val);
}
}
--------------------
メールアドレスのテキストをmail.txtとします。
内容は、以下の通りです。
--------------------------
xxxx1@yyy.co.jp
xxxx2@yyy.co.jp
xxxx3@yyy.co.jp
xxxx4@yyy.co.jp
xxxx5@yyy.co.jp
xxxx@yyy.co.jp
xxxx5@yyy.co.jp
xxxx3@yyy.co.jp
xxxx4@yyy.co.jp
xxxx5@yyy.co.jp
xxxx6@yyy.co.jp
----------------------
DOSプロンプトで
perl dup.pl mail.txt
とすると、
以下の結果が得られます。
------------------------------
重複メール=<xxxx5@yyy.co.jp> 3件
重複メール=<xxxx3@yyy.co.jp> 2件
重複メール=<xxxx4@yyy.co.jp> 2件
---------------------------------
この結果をファイルへ出力する場合は、
perl dup.pl mail.txt > out.txt
とします。out.txtに結果が出力されます。
(perlをインストールしてperl.exeにパスを通す必要があります)
この回答へのお礼
お礼日時:2008/10/10 20:35
私もまだ大きなファイルで試していませんが、数万件のファイルでしたら問題なく処理が可能でした。大変参考になりました。
有難うございます!

No.2
- 回答日時:
秀丸で100万行読み込ませるのは、できたとしても、そこから更に重複行の削除は、重いような気がします。
私が、回答できる保証はありませんが、
参考までに、1行のデータは、どのようになっていますか?
また、各行には、かならず、メールアドレスがついてますか。
メールアドレスがついてない行もありますか。
できれば、何行かのサンプルを提示して下さい。(アドレスは、個人情報が漏れないように伏せ字にして下さい。)
もし、perlをインストールしてもよいなら、perlで処理するのが、最短の解決方法のような気がします。(参考URLのperlをインストールします)
参考URL:http://www.forest.impress.co.jp/lib/stdy/program …
この回答への補足
ご回答有難うございます。
下記の通り補足させていただきます。
リストの形式は、
「一行に一つのメールアドレスのみ」
という簡単なテキストデータです。
他のデータが入った行やブランク行はありません。
perlのインストールも検討してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
sprintfについて
-
テキストファイルから日本語部...
-
awkスクリプトでダブルクォーテ...
-
パスから最後のディレクトリだ...
-
readdir()で得られるファイル・...
-
MATLAB グローバル変数の宣言
-
バッチファイルの作り方(CSV→...
-
MATLABのm-fileについて
-
エクセルVBA コードが同じでも...
-
CSVが可変長の場合の検索方法
-
Windowsで複数のファイルを同じ...
-
PICでFatFsでオープンした内容...
-
Perl-CGI で排他制御はどうすれ...
-
初心者で、困っています。(文...
-
ReadLineでの読み出し行を指定する
-
openした後、closeしないでプロ...
-
VBAでCSVファイルを途中行まで...
-
C言語でファイル名を取得
-
空白文字 \\f と\\v の違いに...
-
perlのエディタでおすすめを教...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
大量メールの任意のヘッダだけ...
-
sprintfについて
-
文字化け
-
重複するデータを抽出できる秀...
-
sprintfで10進数を桁数指定で16...
-
foreachによるカウント方法
-
IEのリロードボタンを押すとデ...
-
2つ質問があり、まず1つ目な...
-
SYSログ出力時の文字化けについて
-
C言語の問題について
-
同じ文なのにちがうように表示...
-
特殊文字の数を調べる
-
DOSコマンドで、標準出力を出力...
-
ドメインからIPアドレスあるい...
-
log2の「正確な」計算方法
-
自動更新
-
CSVファイルのダウンロードにつ...
-
Perl<->Oracle間での文字化けに...
-
この記述というのは?
おすすめ情報