|
| Klippe en blok ud af en text-fil Fra : Ole Hansen |
Dato : 30-12-04 12:09 |
|
Hej,
Jeg har en konfigurationsfil (fra en Cisco-router), hvor jeg gerne vil
have pillet en bestemt blok ud af.. Hvordan gør man det? Sh eller Perl
er hip som hap :)
Hvis jeg f.eks. vil klippe alt om "interface Serial0" og de
efterfølgende linier til afslutningen med !..
interface Ethernet1
decription bla bla
ip address 1.2.3.4
!
interface Serial0
description bla blah
ip address 4.3.2.1
!
--
Ole Hansen
| |
Michael Knudsen (30-12-2004)
| Kommentar Fra : Michael Knudsen |
Dato : 30-12-04 13:23 |
|
Ole Hansen wrote:
> Jeg har en konfigurationsfil (fra en Cisco-router), hvor jeg gerne vil
> have pillet en bestemt blok ud af.. Hvordan gør man det? Sh eller Perl
> er hip som hap :)
awk er din bedste ven.
> Hvis jeg f.eks. vil klippe alt om "interface Serial0" og de
> efterfølgende linier til afslutningen med !..
>
> interface Ethernet1
> decription bla bla
> ip address 1.2.3.4
> !
> interface Serial0
> description bla blah
> ip address 4.3.2.1
> !
/^interface Serial0$/,/^\!$/ { print;}
Det burde goere det, men jeg har ikke lige testet det. Koer det saaledes:
awk '/^interface Serial0$/,/^\!$/ { print;}' fil
Du kan ogsaa droppe fil-parameteren og bruge stdin.
Mvh. Michael.
--
Rumour is information distilled so finely that it can filter through
anything.
-- (Terry Pratchett, Feet of Clay)
| |
Ole Hansen (30-12-2004)
| Kommentar Fra : Ole Hansen |
Dato : 30-12-04 13:56 |
|
Michael Knudsen <ether@cs.auc.dk> writes:
> awk er din bedste ven.
Jeg må snart ha' taget mig sammen til at læse seriøst om den :)
> /^interface Serial0$/,/^\!$/ { print;}
>
> Det burde goere det, men jeg har ikke lige testet det. Koer det saaledes:
>
> awk '/^interface Serial0$/,/^\!$/ { print;}' fil
>
> Du kan ogsaa droppe fil-parameteren og bruge stdin.
Det ser vældig fint ud.. Men den gør, det modsatte af, hvad jeg
ønskede - det var nok lidt uklart formuleret.. :) Jeg vil fjerne
blokken fra filen ikke finde den frem..
> Mvh. Michael.
--
Ole Hansen
| |
Michael Knudsen (30-12-2004)
| Kommentar Fra : Michael Knudsen |
Dato : 30-12-04 23:41 |
|
On 2004-12-30, Ole Hansen <moped@get2net.dk> wrote:
>> /^interface Serial0$/,/^\!$/ { print;}
>>
>> Det burde goere det, men jeg har ikke lige testet det. Koer det saaledes:
>>
>> awk '/^interface Serial0$/,/^\!$/ { print;}' fil
>>
>> Du kan ogsaa droppe fil-parameteren og bruge stdin.
>
> Det ser vældig fint ud.. Men den gør, det modsatte af, hvad jeg
> ønskede - det var nok lidt uklart formuleret.. :) Jeg vil fjerne
> blokken fra filen ikke finde den frem..
Ehm, proev dette saa:
/^interface Serial0$/,/^\!$/ { next;}
{ print;}
Kom det i en fil og koer med ``awk -f script datafil''.
Mvh. Michael.
--
Rumour is information distilled so finely that it can filter through
anything.
-- (Terry Pratchett, Feet of Clay)
| |
Ole Hansen (03-01-2005)
| Kommentar Fra : Ole Hansen |
Dato : 03-01-05 08:52 |
|
Michael Knudsen <e@miracle.mongers.org> writes:
> > Det ser vældig fint ud.. Men den gør, det modsatte af, hvad jeg
> > ønskede - det var nok lidt uklart formuleret.. :) Jeg vil fjerne
> > blokken fra filen ikke finde den frem..
>
> Ehm, proev dette saa:
>
> /^interface Serial0$/,/^\!$/ { next;}
> { print;}
>
> Kom det i en fil og koer med ``awk -f script datafil''.
Snedigt! Now I'll go RTFM :)
> Mvh. Michael.
--
Ole Hansen
| |
Michael Knudsen (03-01-2005)
| Kommentar Fra : Michael Knudsen |
Dato : 03-01-05 13:58 |
|
On 2005-01-03, Ole Hansen <moped@get2net.dk> wrote:
> Snedigt! Now I'll go RTFM :)
Dvs. det virkede?
Jeg mindes, at manualsiden til awk desvaerre ikke er ret grundig, men
hvis man lige forstaar det grundliggende i sproget (og lidt regulaere
udtryk), kan man loese _mange_ opgaver. Det samme kan man med Perl, men
jeg finder awk en del lettere at _laese_.
Jeg kan anbefale ``sed and awk'' fra O'Reilly -- saa faar du samtidig
en god bog om sed, en introduktion til regulaere udtryk og de forskellige
forskellige former (basic og extended regular expressions). Desuden faar
man en forklaring paa, hvorfor grep hedder grep.
Mvh. Michael.
--
Rumour is information distilled so finely that it can filter through
anything.
-- (Terry Pratchett, Feet of Clay)
| |
Ole Hansen (03-01-2005)
| Kommentar Fra : Ole Hansen |
Dato : 03-01-05 14:18 |
|
Michael Knudsen <e@miracle.mongers.org> writes:
> On 2005-01-03, Ole Hansen <moped@get2net.dk> wrote:
> > Snedigt! Now I'll go RTFM :)
>
> Dvs. det virkede?
Jup.. Helt efter hensigten..
> Jeg kan anbefale ``sed and awk'' fra O'Reilly -- saa faar du samtidig
> en god bog om sed, en introduktion til regulaere udtryk og de forskellige
> forskellige former (basic og extended regular expressions). Desuden faar
> man en forklaring paa, hvorfor grep hedder grep.
Den ryger på ønskelisten :)
> Mvh. Michael.
--
Ole Hansen
| |
|
|