Re: [問題] 請問使用檔案比對時?

看板Perl作者 (Art of Life)時間18年前 (2007/03/11 02:06), 編輯推噓4(400)
留言4則, 3人參與, 最新討論串3/6 (看更多)
將你的檔內容存成temp1.txt跟temp2.txt ############################################################################## open f1,"<temp2.txt"; chomp(@pattern=<f1>); close f1; open f1,"<temp1.txt"; while ($line=<f1>){ for (@pattern){ $flag=($line=~s/$_/<NP>/) ; print $line if ($flag); } } close f1; ############################################################################## 個人是覺得廢字還是太多.......應該還有更多改進空間... ※ 引述《Yaowei (成就你的大事)》之銘言: : 我現在的想法是將檔案2先讀進來 : 然後存在一個陣列中 : 然後再將檔案1進行讀檔的動作 : 只是現在卡在比對的方式 : 因為若直接比對陣列,好像不能直接比到?(常規表示式) : 二來若改成將檔案2讀進來 : 存成一個hash : 那麼應該是只要可以在hash中可以找到的話 : 則不需要像array那樣子重頭比到完 : 只是不確定若用hash的話 那麼它的程式要如何來表示= = ? : 若有人知道願意分享討論的 就先謝過了^^ : ※ 引述《Yaowei (成就你的大事)》之銘言: : : 若我有一個檔案1內容有多個句子。分別是以\n為一行存起來 : : 例如: : : I am a teacher. : : They are people. : : You are a undergraduate school student. : : He is a boy. : : She is a girl. : : She is your best friend. : : ------------------------------------------- : : 我又有一個檔案2,內存著以下資料,也是以\n做分隔 : : teacher : : undergraduate school student : : best friend : : ------------------------------------------------- : : 若我希望將檔案1內的資料透過使用檔案2的資料只要有比對到的話 : : 則替換成我要的標籤。 : : 希望印出來的結果如下: : : I am a <NP>. : : You are a <NP>. : : She is your <NP>. : : ------------------------- : : 謝謝了= =+ 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.123.199

03/11 12:31, , 1F
我總覺得應該用map或是grep來做處理,等我的電腦修好在來研究
03/11 12:31, 1F

03/11 13:47, , 2F
好像是不錯的主意..
03/11 13:47, 2F

03/11 13:52, , 3F
我也來研究看看
03/11 13:52, 3F

03/11 18:13, , 4F
先感謝大家 小弟好好研究一下^^
03/11 18:13, 4F
文章代碼(AID): #15ylEEEU (Perl)
文章代碼(AID): #15ylEEEU (Perl)