- 締切済み
同じ番号のデータを別のファイルにはきだだすには?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Ogre7077
- ベストアンサー率65% (170/258)
効率化しないで単純に組むのなら my @lines; my %count; foreach(<>) { push(@lines, $_); my ($key) = split(/\s+/); $count{$key} += 1; } foreach(@lines) { my ($key) = split(/\s+/); my $n = $count{$key}; open(FH, ">> file_$n.txt"); print FH $_; close(FH); }
- ybnormal
- ベストアンサー率50% (220/437)
泥臭くやるとこんなかんじですかね。 出力のところは適当に変えてください。 while(<>){ chomp; @x = split(/\s+/, $_); push(@{$x[0]}, $_); $list{$x[0]}++; } foreach $tmp (keys %list){ if($list{$tmp} == 1) print "single @{$tmp}\n"; } else { print "duplicate @{$tmp}\n"; } }
- tatsu99
- ベストアンサー率52% (391/751)
補足要求です。 質問1 3、4,5行目は3.txtに書きますが、その3.txtの3は どこからきていますか。 先頭2桁が同じものが3個あるので、3.txtとする理解したのですが、 そうすると、8行目の先頭2桁が7行目と同じだった場合、 6,7,8行目は3.txtに書いてよいのでしょうか? ???.txt の???の部分を決める規則を正確に提示してください。 質問2 もし、10行目に以下のようなデータあった場合は どうしますか。 20 七朗 コスモス つまり6,7行目と同じ先頭二桁をもつデータあった場合です。 1.txtに書くのですか、それとも、6,7行目に書いたファイルに書くのですか?
- ORUKA1951
- ベストアンサー率45% (5062/11036)
補足
質問内容が不明確ですいません。 以下補足です。 質問1 ???.txt の部分は1、2、3のいずれかになります。 同じものがない場合は1.txt 同じものが2つの場合は2.txt 3つの場合は 3.txtにはきだします。 質問2 連続である場合以外、同じものはありません。 ですので10行目以下に先頭 ”20 ”のものはありません。 よろしくお願いいたします。