【发布时间】:2014-12-26 09:27:33
【问题描述】:
下面的代码是 Perl 脚本,来自 hostlog 的带有 'Stage' 的 grep 行。然后逐行匹配正则表达式的内容,如果找到将计数加1:
$command = 'grep \'Stage \' '. $hostlog;
@stage_info = qx($command);
foreach (@stage_info) {
if ( /Stage\s(\d+)\s(.*)/ ) {
$stage_number = $stage_number+1;
}
}
那么如何在 linux shell 中做到这一点?根据我的测试,我们不能逐行循环,因为里面有空间。
【问题讨论】:
-
En。行。在 Perl 中,我们可以得到匹配的部分 $1 和 $2。那么除了数字之外,如何在 linux shell 中获取这些值?谢谢!
-
如果您需要匹配部分的详细信息,您必须使用 sed 重新格式化文件。或者,也许您可以使用 shell 表达式将行分解成您需要的部分。
-
索要代码翻译显然不在 SO 上。发布您的 shell 代码,人们肯定会愿意帮助您解决具体问题,但他们不会为您编写。