2014-04-17 74 views
0

如何更改通配符,可以說這一個<x>並將其更改爲另一個文檔中的第一行?如何用另一個文檔中的行替換文檔中的通配符?

文件A:含有通配符會是這樣:

<x> text text text 
text text text <x> 
tex text <x> text 

文檔B:含有詞語替換的列表。

num-1 
num-2 
num-3 
num-4 

因此所需的輸出將是:

num-1 text text text 
text text text num-2 
tex text num-3 text 

我真的沒有嘗試任何事情,因爲我不知道如何甚至開始。 但我可以猜測,有必要從一個文件讀取,然後另一個文件,很難。

更新

米勒看看該結果:輸入是與上述相同的被提供。

text text text 
text text text num-2 
text xt num-3 
+0

qtax我不知道如何改變它,但我注意到它。 – alex

回答

2

閱讀第二個文件來建立你的單詞列表。然後重複第一個文件,一次替換一個「通配符」。

use strict; 
use warnings; 
use autodie; 

my $file1 = 'foo.txt'; 
my $file2 = 'bar.txt'; 

open my $fh, '<', $file2; 
chomp(my @words = <$fh>); 
close $fh; 

open $fh, '<', $file1; 
while (<$fh>) { 
    s/<x>/shift @words/eg; 
    print; 
} 
+0

喜米勒,外殼給我這個:一個@一個桌面:〜/桌面$ perl的wildmarks.pl 單詞2 words.4 – alex

+0

文件foo.txt的我確實有這個:單詞 單詞單詞。 – alex

+0

第9行可以做得更簡潔一點,因爲chomp(my @words = <$fh>);' –

相關問題