Re: kommando?
Arvid Rosen <mailinglists@holken.net> wrote:
> Jag skulle vilja köra en text genom några regular expressions, och
> skriva ut olika delar som matchar till olika ställen.
>
> Exempel:
>
> gawk '/(^[0-9]):([0-9])/ {???}'
>
> I det här fallet skulle jag vilja komma åt texten som matchar i varje
> parentes separat.
>
> Om jag t.ex. skickar in 4:5 så skulle jag vilja behandla 4:an och 5:an
> separat. Går detta? Jag vet att man kan göra så i scriptspråket expect t.ex.
..
. Du kan betrakta : som fältseparator
$ echo 4:5 | awk -F: '/(^[0-9]):([0-9])/ { print $2":"$1 }'
5:4
. Du kan använda match() (det tredje argumentet är en Gnu-utvidgning)
$ echo 4:5 | awk '{ if (match($0, /^([0-9]):([0-9])/, a)) print a[2]":"a[1]}'
5:4
. Eller varför inte perl
$ echo 4:5 | perl -ne 'm/(^[0-9]):([0-9])/ && print "$2:$1\n";'
5:4
Hälsningar,
/Karl
-----------------------------------------------------------------------
Karl Hammar Aspö Data karl@aspodata.se
Lilla Aspö 2340 Nätverk
S-742 94 Östhammar 0173 140 57 Datorer/Utrustning
Sverige 070 511 97 84 Linux/Unix konsulting
-----------------------------------------------------------------------
Reply to: