[Linux OT] Regular expresion question
Jason Joines
joines
Mon Oct 4 15:49:19 PDT 2004
Jean Sagi wrote:
>
> Hi all,
>
> Maybe anyone could help with a regular expresion for matching a rabge of
> numbers.
>
> Lets say You a have a file, in which each line is string of the form:
> hddmmyy, where h is the char 'h' and dd is a day (01..31), mm is a month
> (01..12) and yy are the last two digists of the current year.
>
> So the file could be:
>
> h030904
> h300904
> h290904
> h040904
> h090904
> h100904
> h120904
> h150904
> h180904
> h020904
> h190904
> h220904
> h050904
> h240904
> h207904
>
> All these represent files created in some days of september this year.
>
> What I want is to get a regular expresion wich matches a range of days,
> for example the files representing day 10 through 25 for instance, with
> the previous example the next sould match:
>
> h100904
> h120904
> h150904
> h180904
> h190904
> h220904
> h240904
> h207904
>
> Some kind of this expresion
>
> ^h<range expresion>09
>
> where <range expresion> is a pattern that matches:
> 10
> 11
> 12
> 13
> 14
> 15
> 16
> 17
> 18
> 19
> 20
> 21
> 22
> 23
> 24
> 25
>
> so that files like
>
> h100904
> h110904
> h120904
> h130904
> h140904
> h150904
> h160904
> h170904
> h180904
> h190904
> h200904
> h210904
> h220904
> h230904
> h240904
> h250904
>
> Be matched
>
>
> I could acomplish what I'm asking with awk but I'm wondering if regular
> expresion could do the work.
>
> Any help would be very appreciated.
>
> Chucho!
>
Jean,
I think something like this will do what you want although I believe
it's a globbing pattern instead of a regular expression.
/tmp/lusers> ls
h020904 h040904 h090904 h120904 h180904 h207904 h240904 h300904
h030904 h050904 h100904 h150904 h190904 h220904 h290904 list
/tmp/lusers> ls h[1-2][0-5]*
h100904 h120904 h150904 h207904 h220904 h240904
Jason Joines
=================================
More information about the Linux-users
mailing list