perlquestion
GauCho
Hi All,
i have a problem with using sed in a perl script.
Requirement:
Read a csv file (file1) containing certain pattern, match the pattern in another text file (file2) and delete it where ever its occurring.
<p>
file1:
</p><c>
abc/def
sde/dfg/htf
</c><p>
file2:
</p><c>
abc/def = 100
sde/dfg/htf = 230
dad/fry = 000
</c>
<p>
in the end only dad/fry = 000 should remain in file2.
</p><p>
I cannot install any package, so have to use the default perl options.
</p><p>
Since my file1 contains special character "/" , i have escaped it in my code.
</p><p>
my sed command is working fine if I try to run it without loop, i.e for one pattern only.
As soon as I add it in loop, it fails.
</p><p>
my code:
</p><c>
my $var = "sde\\/dfg\\/htf";
`sed -i '/$var/d' ADT_DVEBMGS33_ldciadt`;
</c><p>
The above works fine.
</p><p>
i tried to encorporate in a loop
</p><c>
my $len = scalar @delete;
for ( my $i = 0; $i <=$len; $i++){
my $first = $delete[$i];
chomp $first;
$first =~ s:/:\\\\/:g;
`sed -i "/$first/d" file2`;
}
</c><p>
error
</p><c>
sed: -e expression #1, char 10: extra characters after command
sed: -e expression #1, char 0: no previous regular expression
</p>