我试图在perl脚本中从命令中提取tomcat版本并运行以发出正则表达式部分。任何帮助将不胜感激。这是我的代码:
$tomcat_ver=`sh /usr/local/apache-tomcat-7.0.57/bin/version.sh`;
if($tomcat_ver=~ m/Server number: (.+)[0-9]$/s)
{
my $tomcat_version=$1;
print "$tomcat_version\n";
}
答案 0 :(得分:2)
由于version.sh的输出与此类似:
sh /usr/local/apache-tomcat-7.0.57/bin/version.sh
Server version: Apache Tomcat/7.0.57
Server built: Jul 2 2013 08:57:41
Server number: 7.0.57
OS Name: Linux
OS Version: 2.6.32-042stab084.26
Architecture: amd64
JVM Version: 1.7.0_21-b11
JVM Vendor: Oracle Corporation
要使用的正则表达式是
m/Server number:\s*([0-9.]+)/
" /秒"意味着"。"应匹配" \ n"太。由于我们没有使用它,因此不需要修饰符。
答案 1 :(得分:1)
这个正则表达式也会这样做:
m/Server number: (.+)\n/)/
它将匹配,直到遇到新行字符。 为了保存它,将$ 1(预定义变量)分配给要存储版本信息的自定义变量。
修改强>
使用版本号修剪空格:
m/Server number:\s*(.+)\n/)/