2013-11-12 2 views
2

Я пытаюсь совместить строку, начинающуюся с 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 

Пожалуйста, вы можете мне помочь с каким-то соответствующим образом, так что только строка, содержащая * сохраняется, а остальные будут устранены. Пожалуйста, сообщите мне, если что-то не так. Спасибо.

+0

Для downvoter. Любая причина? – deep

+0

На самом деле это очень хорошо поставленный вопрос. – simbabque

ответ

Смежные вопросы