2014-01-21 57 views
0

我有兩到三個文件。在這個文件路徑的目錄給出。在這些文件中還會給出另一個文件。關鍵字由參數給出。這些文件的名稱也作爲參數給出。所以我們必須在所有文件中找到關鍵字作爲參數列表。我們必須在包含關鍵字的文件內寫入文件名和行。如何從perl中的多個文件中搜索單個關鍵字?

如何在Perl中編寫這個程序?

+3

請告訴我們,你的輸入文件的例子您所期望的輸出。 –

+0

perl task.plx關鍵字f1.f f2.f 我們必須將關鍵字搜索到f1.f f2.f ,如果在f1.f和f2.f 中提到了其他文件,那麼我們必須搜索那些文件也。 輸出將生成爲。 f1:包含關鍵字的行。 – Chirag

+2

請編輯您的問題。顯示file1中的內容(在每行的開始處縮進4個空格的行)。顯示file2中的內容。顯示file3中的內容。顯示你想要的結果。並解釋爲什麼這是結果。 –

回答

0

試試這個代碼...而不是給文件名作爲參數的列表,列表,名爲file_name.lst文件中的所有文件,並運行此腳本

my $file_name="./file_names.lst"; 
open(FFILE,$file_name); 
while(<FFILE>){ 
     chomp($_); 
     if(-f "$_"){ 
       $_=~s/ /\\ /g;#escape spaces 
       $_=~s/\!/\\\!/g; 
       my $myoutput=`grep -in $ARGV[0] "$_"`; 
       chomp($myoutput); 
      # print "campaign name is $_ and $myoutput\n"; 
         my $errorcode=`echo $?`; 
         chomp($errorcode); 
#      print "$errorcode\n"; 
         if("$errorcode" eq 0){ 
           print "$_\n"; 

         } 


     } 

} 

close(FFILE);