2011-11-16 109 views
1

我正在嘗試通過使用Perl讀取/ proc/version文件的內核& gcc版本。但我不確定,但正則表達式匹配的版本。我試過這樣的東西Perl正則表達式匹配字母數字

/Linux version (\d+)*gcc version(\d+)*/ 

但它不工作。提前致謝。我是Perl的新手。和版本的內容是

Linux版本的2.6.32-21泛型(buildd @羅瑟拉)(GCC 4.4.3版 (Ubuntu的4.4.3-4ubuntu5))#32 Ubuntu的SMP週五4月16日8時10分02秒UTC 2010

+0

納倫德拉Yadala的答案是正確的,我測試了它。 – 2011-11-16 14:52:49

回答

1

此正則表達式會爲你工作

/Linux version ([\w.-]*).*?gcc version ([\w.]*)/ 

首先捕獲組將具有Linux版本2.6.32-21-generic和第二攝影組將有gcc版本4.4.3。如果您不想捕獲generic,則使用\d而不是\w

2

試試這個:

$version =~ /Linux version ([\d.-]+)-\D.*gcc version ([\d.]+) /; 
print "Linux version: $1\ngcc version: $2\n"; 

輸出:

Linux version: 2.6.32-21 
gcc version: 4.4.3 
1
m{Linux version\s(\S+).*gcc version\s(\S+)} and print "$1\n$2\n" 
相關問題