希望它不是作業!
希望你看得懂我寫啥~
<pre class="c" name="code">
open F1, "aaa" ;
chomp( @fileA=<F1> ) ;
close F1;
open F2, "bbb" ;
chomp( @fileB=<F2> ) ;
close F2;
$JJ=-1 ;
$hit = 0 ;
for $i ( 0..$#fileA) {
if ( $JJ<0 ) { $JJ=0; }
for $j ( $JJ..$#fileB ) {
if ( $fileA[$i]!~$fileB[$j] ) {
}
else {
$oldJJ=$JJ;
$JJ = $j ;
for ( $k=$oldJJ+1; $k<$JJ; $k++ ) {
print("- $fileB[$k] \n");
}
$hit = 1 ;
break;
}
}
if ( $hit==0 ) {
print( "+ $fileA[$i] \n");
}
$hit = 0 ;
}
if ( $JJ<$#fileB+1) {
for ( $k=$JJ+1; $k<$#fileB+1; $k++ ) {
print("- $fileB[$k] \n");
}
}
有點像是diff啊 :)
我後來用的笨方法
STEP1:
open J, "1.txt" ;
chomp( @fileA=<J> ) ;
close J;
open L, "2.txt" ;
chomp( @fileB=<L> ) ;
close L;
open I,">INPUT.txt"; #兩檔案內容交集處
for $a (@fileA){
for $b (@fileB){
print I $b,"\n" if ($a eq $b );
}
}
close I;
STEP2
open I, "input.txt" ;
chomp( @fileA=<I> ) ;
close I;
open L, "2.txt" ;
chomp( @fileB=<L> ) ;
close L;
open I,">INPUT.txt";
for $a (@fileA){
for $b (@fileB){
$b=~ s/\b$a\b//; # 排除STEP1內容交集處
}
}
print I $_,"\n" for (@fileB);
close I;
第二次是扣掉已有的部份
<pre class="c" name="code">if ($檔案內容 !~ /cde/)
{
print 檔案內容;
}
我想ricky的意思是
if ($檔案內容 !~ /$_/)
{
print 檔案內容;
}
有個疑問,這支可以執行嗎?