Я пытаюсь совместить строку, начинающуюся с char '*'. Файл mac-address.txt выглядит следующим образом:Perl RegEx для соответствия char '*' в первой позиции строки
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
Пожалуйста, вы можете мне помочь с каким-то соответствующим образом, так что только строка, содержащая * сохраняется, а остальные будут устранены. Пожалуйста, сообщите мне, если что-то не так. Спасибо.
Для downvoter. Любая причина? – deep
На самом деле это очень хорошо поставленный вопрос. – simbabque