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にパスを通す必要があります)
私もまだ大きなファイルで試していませんが、数万件のファイルでしたら問題なく処理が可能でした。大変参考になりました。
有難うございます!
No.2
- 回答日時:
秀丸で100万行読み込ませるのは、できたとしても、そこから更に重複行の削除は、重いような気がします。
私が、回答できる保証はありませんが、
参考までに、1行のデータは、どのようになっていますか?
また、各行には、かならず、メールアドレスがついてますか。
メールアドレスがついてない行もありますか。
できれば、何行かのサンプルを提示して下さい。(アドレスは、個人情報が漏れないように伏せ字にして下さい。)
もし、perlをインストールしてもよいなら、perlで処理するのが、最短の解決方法のような気がします。(参考URLのperlをインストールします)
参考URL:http://www.forest.impress.co.jp/lib/stdy/program …
この回答への補足
ご回答有難うございます。
下記の通り補足させていただきます。
リストの形式は、
「一行に一つのメールアドレスのみ」
という簡単なテキストデータです。
他のデータが入った行やブランク行はありません。
perlのインストールも検討してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- Excel(エクセル) 記録マクロのみでできますか? 7 2022/08/07 20:38
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- Excel(エクセル) 【VBA】複数ブックから特定のシートを抽出して一つのブックに集約するマクロについて 3 2022/09/04 15:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
ファイル出力の改行コードをLFに
-
sprintfで10進数を桁数指定で16...
-
Perl中で teeを使っても戻り値...
-
sprintfについて
-
DOSコマンドで、標準出力を出力...
-
Perlでファイルの末尾から指定...
-
ListBoxのデータを高速でファイ...
-
ExcelをCSV書き出す場合のシー...
-
C言語で特定の行を抽出する方法...
-
window.open でのファイル指定方法
-
パスから最後のディレクトリだ...
-
fgets で値が取得できない
-
ReadLineでの読み出し行を指定する
-
CSVデータの編集の際の重複チェ...
-
ifstream を利用した1行分のテ...
-
vba dir の相対パス
-
配列の中に重複文字列があるか...
-
オープンしたファイルで行の連結
-
perlで、後ろの行を読んで、前...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
重複するデータを抽出できる秀...
-
Perlでファイルの末尾から指定...
-
sprintfについて
-
[Perl]ファイル出力のエンコー...
-
エクセルVBAで素数だけを出力す...
-
文字コードの変換(Shift-JISか...
-
テキストファイルから日本語部...
-
sprintfで10進数を桁数指定で16...
-
ファイル出力の改行コードをLFに
-
Perlからsyslog経由でログを出...
-
PerlからのCSV出力
-
perlでcsvの出力について
-
教えて!perlから.exeファイル...
-
バッチファイルで、記号を含む...
-
perl CGIでのhttpヘッダー出力...
-
print文で&(半角)文字のエラー...
-
Perlでエラーログに日時をつける
-
紙にもホームページにも同じレ...
おすすめ情報