回答編集履歴
7
追加
answer
CHANGED
@@ -32,4 +32,45 @@
|
|
32
32
|
}
|
33
33
|
}
|
34
34
|
}
|
35
|
+
```
|
36
|
+
|
37
|
+
SJISを想定したperlを作成しました。
|
38
|
+
|
39
|
+
```perl
|
40
|
+
use utf8;
|
41
|
+
use Encode 'decode';
|
42
|
+
use Encode 'encode';
|
43
|
+
|
44
|
+
my $inputfile="chimei1.csv.sjs";
|
45
|
+
open (FILE, "<:encoding(cp932)", $inputfile) or die "$!";
|
46
|
+
my @lines = <FILE>;
|
47
|
+
close(FILE);
|
48
|
+
|
49
|
+
my $cnt=0;
|
50
|
+
$inputfile="chimei2.csv.sjs";
|
51
|
+
open(my $data, "<:encoding(cp932)", $inputfile) or die "$!";
|
52
|
+
while (my $line = <$data>) {
|
53
|
+
$line =~ s/[\r\n]+\z//;
|
54
|
+
my @fields = split ",", $line;
|
55
|
+
$cnt++;
|
56
|
+
$outfile="result". $cnt .".csv.sjs";
|
57
|
+
$fields[0] =~ s/^ *(.*?) *$/$1/;
|
58
|
+
$fields[1] =~ s/^ *(.*?) *$/$1/;
|
59
|
+
$pp="[,]+". $fields[0] ."[,]+";
|
60
|
+
$pq="[,]+". $fields[1] ."[,]+";
|
61
|
+
foreach my $var(@lines) {
|
62
|
+
chomp($var);
|
63
|
+
if ($var =~ /($pp)/ or $var =~ /($pq)/){
|
64
|
+
if (fileno(OUT)){
|
65
|
+
printf OUT "%s\r\n", $var;
|
66
|
+
close (OUT);
|
67
|
+
}elsif (! fileno(OUT)){
|
68
|
+
open (OUT, ">:encoding(cp932)", $outfile) or die "$!";
|
69
|
+
printf OUT "%s\r\n", $var;
|
70
|
+
}
|
71
|
+
}elsif (fileno(OUT)){
|
72
|
+
printf OUT "%s\r\n", $var;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
35
76
|
```
|
6
変更
answer
CHANGED
@@ -18,17 +18,17 @@
|
|
18
18
|
$fields[1] =~ s/^ *(.*?) *$/$1/;
|
19
19
|
$pp="[,]+". $fields[0] ."[,]+";
|
20
20
|
$pq="[,]+". $fields[1] ."[,]+";
|
21
|
-
foreach (@lines) {
|
21
|
+
foreach my $var(@lines) {
|
22
|
-
if ($
|
22
|
+
if ($var =~ /($pp)/ or $var =~ /($pq)/){
|
23
23
|
if (fileno(OUT)){
|
24
|
-
print OUT $
|
24
|
+
print OUT $var;
|
25
25
|
close (OUT);
|
26
26
|
}elsif (! fileno(OUT)){
|
27
27
|
open (OUT, ">$outfile") or die "$!";
|
28
|
-
print OUT $
|
28
|
+
print OUT $var;
|
29
29
|
}
|
30
30
|
}elsif (fileno(OUT)){
|
31
|
-
print OUT $
|
31
|
+
print OUT $var;
|
32
32
|
}
|
33
33
|
}
|
34
34
|
}
|
5
変更
answer
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
while (my $line = <$data>) {
|
13
13
|
$line =~ s/[\r\n]+\z//;
|
14
14
|
my @fields = split ",", $line;
|
15
|
-
#print $fields[0] .' '. $fields[1];
|
16
15
|
$cnt++;
|
17
16
|
$outfile="result". $cnt .".csv";
|
18
17
|
$fields[0] =~ s/^ *(.*?) *$/$1/;
|
@@ -21,14 +20,16 @@
|
|
21
20
|
$pq="[,]+". $fields[1] ."[,]+";
|
22
21
|
foreach (@lines) {
|
23
22
|
if ($_ =~ /($pp)/ or $_ =~ /($pq)/){
|
24
|
-
if (
|
23
|
+
if (fileno(OUT)){
|
24
|
+
print OUT $_;
|
25
|
+
close (OUT);
|
26
|
+
}elsif (! fileno(OUT)){
|
25
27
|
open (OUT, ">$outfile") or die "$!";
|
28
|
+
print OUT $_;
|
26
29
|
}
|
30
|
+
}elsif (fileno(OUT)){
|
27
31
|
print OUT $_;
|
28
32
|
}
|
29
33
|
}
|
30
|
-
if (fileno(OUT)){
|
31
|
-
close (OUT);
|
32
|
-
}
|
33
34
|
}
|
34
35
|
```
|
4
修正
answer
CHANGED
@@ -17,8 +17,8 @@
|
|
17
17
|
$outfile="result". $cnt .".csv";
|
18
18
|
$fields[0] =~ s/^ *(.*?) *$/$1/;
|
19
19
|
$fields[1] =~ s/^ *(.*?) *$/$1/;
|
20
|
-
$pp="[,]
|
20
|
+
$pp="[,]+". $fields[0] ."[,]+";
|
21
|
-
$pq="[,]
|
21
|
+
$pq="[,]+". $fields[1] ."[,]+";
|
22
22
|
foreach (@lines) {
|
23
23
|
if ($_ =~ /($pp)/ or $_ =~ /($pq)/){
|
24
24
|
if (! fileno(OUT)){
|
3
変更
answer
CHANGED
@@ -17,12 +17,18 @@
|
|
17
17
|
$outfile="result". $cnt .".csv";
|
18
18
|
$fields[0] =~ s/^ *(.*?) *$/$1/;
|
19
19
|
$fields[1] =~ s/^ *(.*?) *$/$1/;
|
20
|
-
|
20
|
+
$pp="[,]?". $fields[0] ."[,]?";
|
21
|
+
$pq="[,]?". $fields[1] ."[,]?";
|
21
22
|
foreach (@lines) {
|
22
|
-
if ($_ =~ /
|
23
|
+
if ($_ =~ /($pp)/ or $_ =~ /($pq)/){
|
24
|
+
if (! fileno(OUT)){
|
25
|
+
open (OUT, ">$outfile") or die "$!";
|
26
|
+
}
|
23
27
|
print OUT $_;
|
24
28
|
}
|
25
29
|
}
|
30
|
+
if (fileno(OUT)){
|
26
|
-
|
31
|
+
close (OUT);
|
32
|
+
}
|
27
33
|
}
|
28
34
|
```
|
2
変更
answer
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
$fields[1] =~ s/^ *(.*?) *$/$1/;
|
20
20
|
open (OUT, ">$outfile") or die "$!";
|
21
21
|
foreach (@lines) {
|
22
|
-
if ($_ =~ /$fields[0],/ or $_ =~ /$fields[1],/){
|
22
|
+
if ($_ =~ /,$fields[0],/ or $_ =~ /,$fields[1],/){
|
23
23
|
print OUT $_;
|
24
24
|
}
|
25
25
|
}
|
1
変更
answer
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
$inputfile="chimei2.csv";
|
11
11
|
open(my $data, "<", $inputfile) or die "$!";
|
12
12
|
while (my $line = <$data>) {
|
13
|
-
|
13
|
+
$line =~ s/[\r\n]+\z//;
|
14
14
|
my @fields = split ",", $line;
|
15
15
|
#print $fields[0] .' '. $fields[1];
|
16
16
|
$cnt++;
|
@@ -19,7 +19,7 @@
|
|
19
19
|
$fields[1] =~ s/^ *(.*?) *$/$1/;
|
20
20
|
open (OUT, ">$outfile") or die "$!";
|
21
21
|
foreach (@lines) {
|
22
|
-
if ($_ =~ /$fields[0]/ or $_ =~ /$fields[1]/){
|
22
|
+
if ($_ =~ /$fields[0],/ or $_ =~ /$fields[1],/){
|
23
23
|
print OUT $_;
|
24
24
|
}
|
25
25
|
}
|