- 締切済み
テキストファイルの中身を条件で分けて2ファイルに振り分けるには?
以下のようなテキストファイルがあります。 赤 青 黄 緑 赤 1行に1語あるとします これを重複があるものと 重複が1度も無いものに分けて それぞれをファイルに出力したいんですが ファイルA 赤 ファイルB 青 黄 緑 というようにしたいです。 PerlかPHPでと考えていたんですが どなたか良い方法を教えていただけませんでしょうか。 よろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
PerlでもPHPでもできますが、連想配列を使うのが簡単です。 例えばPerlで while(<IN>){ chomp; $data{$_}++; } の様にすれば、 %dataにそれぞれの語での出現回数を数えることができます。 それが、1なら、重複していないデータで2以上なら重複しているので、それで書き出せばよいです。
- anmochi
- ベストアンサー率65% (1332/2045)
回答No.1
そうねぇ・・・・これは先に一旦全部元ファイルを舐める必要があるやね。単純にこれはアルゴリズムのお話だな。 データ構造 ・一つだけ存在するものリスト ・複数存在するものリスト $一つ->clear() $複数->clear() while(まだデータがある) { $work = 1行読む if($workが$複数の中に存在する) { // そのデータをシカト }elseif($workが$一つの中に存在する) { $一つからそれを削除 $複数にそれを追加 } else { $一つにそれを追加 } } $一つを「一つのものファイル」に書き出し $複数を「複数のものファイル」に書き出し こんな感じかなぁ。