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スクリプトでダブルクォーテ...
-
perlのpushについてです。
-
sprintfについて
-
[Perl]ファイル出力のエンコー...
-
ドメインからIPアドレスあるい...
-
perlでの文字列抽出
-
教えて!perlから.exeファイル...
-
コンソール出力をテキストに出...
-
オーバーラップ計算法について
-
sprintfで10進数を桁数指定で16...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
openした後、closeしないでプロ...
-
空白文字 \\f と\\v の違いに...
-
FindFirstFileとFindNextFileで...
-
バッチファイルの作り方(CSV→...
-
batファイルでrenameができませ...
-
HTTP::Request::Common qw(POST...
-
エクセルVBA コードが同じでも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
sprintfについて
-
エクセルVBAで素数だけを出力す...
-
C言語の問題について
-
Perl<->Oracle間での文字化けに...
-
log2の「正確な」計算方法
-
教えて!perlから.exeファイル...
-
重複するデータを抽出できる秀...
-
Perlでファイルの末尾から指定...
-
CGIから外部コマンド実行時の標...
-
ファイル出力の改行コードをLFに
-
至急お願いします。C言語で.img...
-
LWPでPOST送信した後に送信先に...
-
perlでcsvの出力について
-
バッチファイルで、記号を含む...
-
Perl 内で実行される Perl が S...
-
文字コードの変換(Shift-JISか...
-
Perlでエラーログに日時をつける
-
Active Perl の動作異常について
おすすめ情報