【发布时间】:2013-07-10 00:27:08
【问题描述】:
我有一个如下所示的日志文件:
874899 root@commands to execute some files
Exit Status : 0
Exit time : Sun May 5 18:19:39 2013
874923 root@commands to execute some files
Exit Status : 2
Exit time : Sun May 5 18:19:42 2013
我有一个脚本,它查看一个模式并返回该匹配模式的下一行。脚本如下:
open(FH,'log.txt');
while ($line = <FH>) {
if ($line =~ /Exit Status/) {
print "$line";
print scalar <FH>;
}
}
我需要您输入关于我应该如何执行此操作的信息,以便它匹配 Exit status(在本例中为 2)并保存 874923 行以及命令(在本例中)和 Exit Time作为两个独立的变量。
请纠正我,因为我是 perl 的新手。
【问题讨论】:
-
Exit Time作为两个独立的变量是什么意思?您希望它的文本在一个变量中,而日期/时间在另一个变量中? -
@JasonGray 感谢您的快速回复。在这种情况下,退出时间只是一个变量。但是根据日志文件是变量
-
从您的问题中不清楚您的日志文件包含什么。我认为
# Consists of three lines output不在文件中,但{...}在那里?是否有三行数据包括Exit Status和Exit times,还是每条记录总共有五行?你不能只发布一些实时数据吗?理解起来会简单得多。 -
将标量变量放在引号内几乎是不对的。
print $line是正确的。 -
@Borodin 谢谢您的回复...我已经编辑了我的上述问题..如果退出状态条件等于 2..I,我需要 2 个变量可以保存上述行 874923 和退出状态希望这会有所帮助..谢谢
标签: perl conditional-statements extraction file-processing