我正在尝试内核&使用Perl读取/ proc / version文件的gcc版本。但我不确定,但匹配版本的正则表达式。我试过这样的事情
/Linux version (\d+)*gcc version(\d+)*/
但它不起作用。提前致谢。我是Perl的新手。版本的内容是
Linux版本2.6.32-21-generic(buildd @ rothera)(gcc版本4.4.3 (Ubuntu 4.4.3-4ubuntu5))#32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010
答案 0 :(得分: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 :(得分:1)
这个正则表达式适合你
/Linux version ([\w.-]*).*?gcc version ([\w.]*)/
首先捕获的组将具有linux版本2.6.32-21-generic
,第二个捕获的组将具有gcc版本4.4.3
。如果您不想捕获generic
,请使用\d
代替\w
。
答案 2 :(得分:1)
m{Linux version\s(\S+).*gcc version\s(\S+)} and print "$1\n$2\n"