需要从 HWInfo 中提取信息

需要从 HWInfo 中提取信息

我需要从 HWInfo 中提取诸如 Serial 和 Product 之类的信息。现在我尝试了hwinfo --bios | grep 'Serial:',但得到的比我需要的更多。首先,我想要实际 Serial: 之后的信息,但我不知道如何只通过管道传输它。第二个问题是,通过 grepping 'Serial',我得到了 3 个不同的 Serial,如果我查看 HWInfo 的完整打印输出,我真正需要的 Serial 位于 System Info: #1 的子部分中,那么有没有办法只 grep 其下的 Serial?

谢谢

答案1

我遇到了同样的问题,并创建了这个作为第一步:

#! /usr/bin/perl

use strict;
use warnings;

my $filename = 'hwinfo_example.txt';
open(my $fh, '<:encoding(UTF-8)', $filename)
  or die "Could not open file '$filename' $!";
while (my $row = <$fh>) {
    chomp $row;
    if( index($row, '  Chassis Info') eq 0 ){
        #print "$row\n";
        while (my $row = <$fh>){
            chomp $row;
            if( (length($row) < 5) or (substr($row, 2, 1) ne ' ') ){
                last ;
            }
            if( index($row, '    Serial:') eq 0 ){
                print "$row\n";
            }
        }
    }
}

相关内容