2013-02-28 42 views
1

我有希臘文的txt文件,現在我想用perl和bash搜索它們中的特定單詞......這些單詞就像?a ?, t ?, e?在Unix和Perl中搜索希臘語的單詞

我正在搜索英文單詞,現在想要替換他們希臘,但我得到的是???大多... Perl的:

my %word = map { $_ => 1 } qw/name date birth/; 

和bash的

for X in name date birth 
do 

有人可以幫我嗎?

+1

您應該給我們提供一些關於您的問題的更多信息。什麼是您的文本文件的編碼以及您的語言環境設置的編碼是什麼? – mikyra 2013-02-28 22:56:55

回答

2
#!/usr/bin/perl 
use strict; 
use warnings; 

# Tell Perl your code is encoded using UTF-8. 
use utf8; 

# Tell Perl input and output is encoded using UTF-8. 
use open ':std', ':encoding(UTF-8)'; 

my @words = qw(καί τό εἰς); 

my %words = map { $_ => 1 } @words; 
my $pat = join '|', map quotemeta, keys %words; 

while (<>) { 
    if (/$pat/) { 
     print; 
    } 
} 

用法:

script.pl file.in >file.out 

注:

  • 確保源代碼使用UTF-8編碼,並且使用的use utf8;
  • 確保您使用use open行,併爲您的數據文件指定適當的編碼。 (如果它不是UTF-8,請更改它。)
+0

你確定他的文件是utf-8編碼嗎?我的猜測是ISO 8859-1或類似的東西,因此是整個麻煩。 – mikyra 2013-02-28 23:01:37

+0

@mikyra,我告訴他他需要什麼。任何偏差都可能是麻煩。他有4種方式可以偏離。推測他錯誤的組合是無用的。 – ikegami 2013-02-28 23:03:42

+0

對編碼抱歉,所以不知道我使用的記事本++來編寫它 – 2013-02-28 23:08:38