-1

我有这个 perl 函数,我想在 vmstat 之后调用它:

  sub insert_datetime{
        while($line = <>) {
         do
           print($line);
             if($line =~ /[0-9].*/)
             {
                 `date '+ %m-%d-%Y %H:%M:%S'`;
             }
             else
             {
                 print("\n")
             }
        }
}

在 perl 中,当我调用 vmstat 命令时,我想在每一行中插入日期字段,如下所示:

 nohup `vmstat -Iwt 30 2884 | insert_datetime >vmstat_log &`;

我知道你需要在 perl 中回勾 unix 命令。如果 unix 命令的输出需要通过管道传输到 perl 子程序中怎么办?

4

1 回答 1

1

它对火箭科学的要求并不多:

#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw(strftime);

while (<>)
{
    chomp;
    $_ .= strftime(' %m-%d-%Y %H:%M:%S', localtime(time)) if ($_ !~ m/^\d/);
    print "$_\n";
}
于 2013-05-03T20:55:40.643 回答