Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: grep only lines having matched pattern

by BillKSmith (Monsignor)
on Apr 01, 2021 at 17:13 UTC ( #11130679=note: print w/replies, xml ) Need Help??


in reply to grep only lines having matched pattern

My understanding of your requirement is that you only want to accept lines starting with a date not followed by a dash and a non-zero digit. I recommend using a module to match the date. My choice is no better than Tux's hand coded regex, but at least it makes the intention clear. It would be convenient if you have an additional requirement to match other date/time formats in your data.
use strict; use warnings; use Regexp::Common qw(time); my $DATE = $RE{time}{tf}{-pat => 'mm-dd-yyyy'}; my @data = <DATA>; my @wanted = grep {/^$DATE(?!-[1-9])/} @data; print @wanted; __DATA__ 03-15-2021-1 21.1.0-s103 2021/03/15:14:16:39 21.1 21.10-s103 03-15-2021-2 21.1.0-s103 2021/03/15:14:16:39 21.1 21.10-s103 03-15-2021 21.1.0-s102 2021/03/15:04:00:09 21.1 21.10-s102
Bill

Replies are listed 'Best First'.
Re^2: grep only lines having matched pattern
by Marshall (Canon) on Apr 02, 2021 at 02:11 UTC
    You wrote: "My understanding of your requirement is that you only want to accept lines starting with a date not followed by a dash and a non-zero digit."

    My understanding is different.
    "not followed by a dash" is sufficient.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11130679]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2022-05-21 00:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (76 votes). Check out past polls.

    Notices?