文字「*」で始まる行を一致させようとしています。ファイル mac-address.txt は次のとおりです。
Legend: * - primary entry
age - seconds since last seen
n/a - not available
vlan mac address type learn age ports
------+----------------+--------+-----+----------+--------------------------
* 14 782b.cb87.b085 dynamic Yes 0 Gi4/39
* 400 c0ea.e459.913d dynamic Yes 0 Gi6/21
* 400 0017.c59a.23aa dynamic Yes 0 Gi3/37
* 400 d4be.d96a.050f dynamic Yes 0 Gi1/12
私はこのようなものを持っています。
#!/usr/bin/perl
use strict;
use warnings;
my $line;
open FH, '<', "mac-address.txt";
while ($line = <FH>)
{
if ($line =~ m/^\S/){
print ("$line");
}
}
close FH;
ただし、次のように、いくつかの不要な行と一緒に機能します。
Legend: * - primary entry
------+----------------+--------+-----+----------+--------------------------
* 14 782b.cb87.b085 dynamic Yes 0 Gi4/39
* 400 c0ea.e459.913d dynamic Yes 0 Gi6/21
* 400 0017.c59a.23aa dynamic Yes 0 Gi3/37
* 400 d4be.d96a.050f dynamic Yes 0 Gi1/12
* を含む行のみを保持し、他の行を削除するような適切な方法を教えてください。何か問題がある場合はお知らせください。ありがとうございました。