Re: [問題] 檔案內容比對

看板Perl作者 (掘)時間15年前 (2010/04/19 22:01), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《jammy8 (jay)》之銘言: : 請教前輩們 : 如果我有兩個檔案內容要做差異比對, : 比如兩個檔案分別為/tmp/20100414.log 和 /tmp/20100413.log : 若有更新的行才做輸出到新的檔案, : 請問該用何種方式會較好? : 因為我是想到用shell的diff去做比對, : 但比對後的檔案在行會有 > 的輸出, : 而我不希望有 > 的輸出, : 所以希望前輩們能給予指教...謝謝 我會用二個Hash去比較,大概如下 open( F, 'file1'); my @lines1=<F>; close(F); my $h1 = undef; my $ndx = 0; while (defined $lines1[$ndx]) { chomp $lines1[$ndx]; $h1->{$lines1[$ndx]} = 1; $ndx++; } open( F,'file2'); my @lines2=<F>; close(F); my $h2 = undef; my $ndx = 0; while(defined $lines2[$ndx]) { chomp $lines2[$ndx]; $h2->{$lines[$ndx]} = 1; $ndx++; } open( F,'>'.'OF.TXT'); foreach my $key( keys %$h1 ) { if ( !defined $h2->{$key} ) { print F $key.chr(0xd).chr(0xa); $h2->{$key} = 99; } } foreach my $key( keys %$h2 ) { if ( $h2->{$key} == 1 ) { if ( !defined $h1->{$key} ) { print F $key.chr(0xd).chr(0xa); } } } close(F); 大概就將... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.231.31

04/20 04:23, , 1F
為什麼要寫這麼多行呢 *ponders*
04/20 04:23, 1F

04/20 04:29, , 2F
用 grep 把有 > 的行拿出來然後 sed 拿掉就好啦 XD
04/20 04:29, 2F
文章代碼(AID): #1Bp68VQa (Perl)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Bp68VQa (Perl)