2

テキストファイル

malloc
calloc
free

.C ソースファイル

マイコード

my $word_search_path = $ENV{'SCRIPT_PATH'}."\\word_search.txt";
open(FILE1, "< $word_search_path") or die $!;
chomp(my @words = <FILE1>);
close(FILE1);

my $input = $ARGV[0];
open(FILE, $input) or die $!;                              #source file
my @lines = <FILE>;
close(FILE);

my $temp_path =  $ENV{'TEMPLOG'}."\\dynamic_alloc_log.csv";
open(FILE2, "> $temp_path") or die "couldn't open the file!";

foreach my $word(@words){
   my $count = 0;
   foreach(@lines){
     if($_ =~ $word){
          $count++;
     }
   } 
    print FILE2 $word. $count."\n";
 }
 close(FILE2);

私が得る出力

malloc0       #in 1st field
calloc1       #in 2nd field
free2

必要な出力

malloc    0      # malloc in one field , 0 in next field
calloc    1 
free      2 

Perlモジュールなしでできれば素晴らしいことです。もう1つ、TEXT FILEデータはユーザー定義であるため、修正されていません。

4

1 に答える 1

3

printステートメントを次のように変更してみてください

print FILE2 "${word},${count}\n";

または

printf FILE2 "%s,%s\n", $word, $count;

すでに出力を.csvファイルに保存しているので、フィールドが適切に表示されるはずですMS Excel

于 2013-11-01T11:40:38.010 に答える