/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
awk - ændre del af en streng
Fra : Henrik Bøgh


Dato : 23-08-01 06:15

Jeg bliver mere og mere begejstret for awk - men har liiige et lille
problem:

Ved hjælp af grep henter jeg nogle ip-adresser ud af en fil som jeg piper
til awk. Jeg kunne godt tænke mig at få pillet en smule ved disse
ip-adresser således at f.eks.
123.234.123.234 blilver til 123.234.123.xxx
og
1.2.3.4 bliver til 1.2.3.xxx
Det skal helst være en one-liner.
Nogle der har nogle forslag - evt. til noget læsestor?

Er der i øvrigt nogle der kan anbefale en god bog[1] om awk?

[1]: Sådan en papirs ting :)

--
` Med Venlig Hilsen | Regards
` H e n r i k B ø g h ^ http://henrik.boegh.net/
` "skyd manden. =) han er tydeligvis en øgle."
` - JacQ om en skribent i dk.edb.sikkerhed's hjemmeside


 
 
Klaus Alexander Seis~ (23-08-2001)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 23-08-01 07:27

Henrik Bøgh skrev:

> Jeg kunne godt tænke mig at få pillet en smule ved disse
> ip-adresser således at f.eks.
> 123.234.123.234 bliver til 123.234.123.xxx
> og
> 1.2.3.4 bliver til 1.2.3.xxx
> Det skal helst være en one-liner.

Måske kan du bruge dette som udgangspunkt:

#v+
$ echo 1.2.3.4 | awk -F. '{print $1 "." $2 "." $3 ".xxx"}'
1.2.3.xxx
$
#v-

// Klaus

--
><>°    vandag, môre, altyd saam

Lars Balker Rasmusse~ (23-08-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 23-08-01 08:19

Henrik Bøgh <h_nospam_@boegh.net> writes:
> Ved hjælp af grep henter jeg nogle ip-adresser ud af en fil som jeg piper
> til awk. Jeg kunne godt tænke mig at få pillet en smule ved disse
> ip-adresser således at f.eks.
> 123.234.123.234 blilver til 123.234.123.xxx
> og
> 1.2.3.4 bliver til 1.2.3.xxx
> Det skal helst være en one-liner.

Brug sed i stedet for.

sed 's/123\.234\.123\.234/123.234.123.xxx/'

Eller hvis du mener alle IP-adresser, er perl nok nemmest:

perl -pe 's/(([0-9]{1,3}\.){3})[0-9]{1,3}/${1}xxx/'
--
Lars Balker Rasmussen "Woo hoo!?"

Henrik Bøgh (23-08-2001)
Kommentar
Fra : Henrik Bøgh


Dato : 23-08-01 15:26

Lars Balker Rasmussen vreettee in meeseaagjee <un14rtfaa.fsf@balker.org>:

[...]

> Eller hvis du mener alle IP-adresser, er perl nok nemmest:

Det var lige hvad jeg skulle bruge. Og Perl-løsningen går fint i spænd med
resten af one-lineren.

[...]

> Lars Balker Rasmussen "Woo

--
` Med Venlig Hilsen | Regards
` H e n r i k B ø g h ^ http://henrik.boegh.net/
` "skyd manden. =) han er tydeligvis en øgle."
` - JacQ om en skribent i dk.edb.sikkerhed's hjemmeside


Lars Balker Rasmusse~ (24-08-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 24-08-01 19:00

Lars Balker Rasmussen <lars@balker.org> writes:
> Eller hvis du mener alle IP-adresser, er perl nok nemmest:
>
> perl -pe 's/(([0-9]{1,3}\.){3})[0-9]{1,3}/${1}xxx/'

Bedre kendt som

perl -pe 's/((\d{1,3}\.){3})\d{1,3}/${1}xxx/'

hvis man ikke prøver at skrive det i sed først...
--
Lars Balker Rasmussen "Woo hoo!?"

Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408885
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste