Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

awk: alle veldjes, behalve 1.

8 views
Skip to first unread message

marc

unread,
Dec 29, 2011, 5:51:13 PM12/29/11
to

Ik wil van gegevens alle veldjes/kolommen, behalve de eerste ...
(zelfde als: van een zin alle woorden, behalve eerste..)


awk '{print $2 $3 $4 $5 $6}'

is een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
behouden, als $3 al bestaat....


--
--
What's on Shortwave guide: choose an hour, go!
http://shortwave.tk
700+ Radio Stations on SW http://swstations.tk
300+ languages on SW http://radiolanguages.tk

John Bokma

unread,
Dec 29, 2011, 6:12:37 PM12/29/11
to
marc <nom...@be.com> writes:

> Ik wil van gegevens alle veldjes/kolommen, behalve de eerste ...
> (zelfde als: van een zin alle woorden, behalve eerste..)
>
>
> awk '{print $2 $3 $4 $5 $6}'
>
> is een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
> behouden, als $3 al bestaat....

breek regels op spatie, en toon vanaf veld 2:

cut -d ' ' -f2-

een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
als $3 al bestaat....


Dit soort vragen stel je natuurlijk het beste door *ook* voorbeeld
invoer en verwachtte uitvoer bij de vraag te stoppen.

--
John Bokma j3b

Blog: http://johnbokma.com/ Perl Consultancy: http://castleamber.com/
Perl for books: http://johnbokma.com/perl/help-in-exchange-for-books.html

Wil Taphoorn

unread,
Dec 29, 2011, 7:35:37 PM12/29/11
to
On 29-12-2011 23:51, marc wrote:
>
> Ik wil van gegevens alle veldjes/kolommen, behalve de eerste ...
> (zelfde als: van een zin alle woorden, behalve eerste..)

Lees eerste kolom en de rest, geef alleen de rest:

while read a b;do echo "$b";done <your-file

--
Wil

marc

unread,
Dec 30, 2011, 1:37:13 PM12/30/11
to
John Bokma wrote:

> marc <nom...@be.com> writes:
>
>> Ik wil van gegevens alle veldjes/kolommen, behalve de eerste ...
>> (zelfde als: van een zin alle woorden, behalve eerste..)
>>
>>
>> awk '{print $2 $3 $4 $5 $6}'
>>
>> is een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
>> behouden, als $3 al bestaat....
>
> breek regels op spatie, en toon vanaf veld 2:
>
> cut -d ' ' -f2-
>
> een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
> als $3 al bestaat....
>
>
> Dit soort vragen stel je natuurlijk het beste door *ook* voorbeeld
> invoer en verwachtte uitvoer bij de vraag te stoppen.
>

Gegevens: het gaat om het veld nr 5 "Evergem Brielken" waar ik alleen
Brielken wil overhouden, maar bvb ook "Kerk St Medard" ...


51.110698587;3.699280172;2;20001;Evergem
Brielken;CHRISTOFFELWEG;EVERGEM;EVERGEM;103117;200279;false;true
50.852434217;3.735676653;3;28199;Sint-Blasius-Boekel
Kouteren;BOEKELBAAN;SINT-BLASIUS-BOEKEL;ZWALM;105421;171527;false;true
50.851706432;3.729111205;4;28200;Sint-Blasius-Boekel
Boekelbaan;BOEKELBAAN;SINT-BLASIUS-BOEKEL;ZWALM;104958;171450;false;true
50.851717158;3.719596122;5;28201;Sint-Blasius-Boekel Kerk;BOEKELBAAN;SINT-
BLASIUS-BOEKEL;ZWALM;104288;171457;false;true
50.843620936;3.696279435;6;28202;Sint-Maria-Horebeke
Tonnestraat;BROEKESTRAAT;SINT-MARIA-
HOREBEKE;HOREBEKE;102638;170571;false;true
50.840130333;3.691147013;7;28203;Sint-Maria-Horebeke
Melkerij;DORPSSTRAAT;SINT-MARIA-HOREBEKE;HOREBEKE;102273;170186;false;true

Wil Taphoorn

unread,
Dec 30, 2011, 3:49:01 PM12/30/11
to
On 30-12-2011 19:37, marc wrote:
> Gegevens: het gaat om het veld nr 5 "Evergem Brielken" waar ik alleen
> Brielken wil overhouden, maar bvb ook "Kerk St Medard" ...
>
>
> 51.110698587;3.699280172;2;20001;Evergem Brielken;CHRISTOFFELWEG;EVERGEM;EVERGEM;103117;200279;false;true

Dat is wat anders dan je vroeg.

Conversie van het hele file zou zo kunnen:

(IFS=';';while read -a a; do a[4]="${a[4]#* }";echo "${a[*]}";done) <your-file

--
Wil

John Bokma

unread,
Dec 30, 2011, 8:22:39 PM12/30/11
to
veld 5 is het 5e veld als je op de ; breekt, klopt dat? En dan wil je
daarvan weer het 1e woord kwijt, correct?

Zoals ik al schreef, een voorbeeld helpt echt. Je noemt 'bvb ook "Kerk
St Medard"' maar dat voorbeeld ontbreekt nu weer net.

Maar goed, met een beetje cut-en:

cut -d';' -f5 < bestand.txt | cut -d' ' -f2-
Brielken
Kouteren
Boekelbaan
Kerk
Tonnestraat
Melkerij

Correct?

John Bokma

unread,
Dec 30, 2011, 8:36:54 PM12/30/11
to
marc <nom...@be.com> writes:

> John Bokma wrote:
>
>> marc <nom...@be.com> writes:
>>
>>> Ik wil van gegevens alle veldjes/kolommen, behalve de eerste ...
>>> (zelfde als: van een zin alle woorden, behalve eerste..)
>>>
>>>
>>> awk '{print $2 $3 $4 $5 $6}'
>>>
>>> is een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
>>> behouden, als $3 al bestaat....
>>
>> breek regels op spatie, en toon vanaf veld 2:
>>
>> cut -d ' ' -f2-
>>
>> een beetje dwaas, want tussen $2 en $3 staat bvb een blanco die ik wil
>> als $3 al bestaat....
>>
>>
>> Dit soort vragen stel je natuurlijk het beste door *ook* voorbeeld
>> invoer en verwachtte uitvoer bij de vraag te stoppen.
>>
>
> Gegevens: het gaat om het veld nr 5 "Evergem Brielken" waar ik alleen
> Brielken wil overhouden, maar bvb ook "Kerk St Medard" ...
>
>
> 51.110698587;3.699280172;2;20001;Evergem
> Brielken;CHRISTOFFELWEG;EVERGEM;EVERGEM;103117;200279;false;true

Perl oplossingen:

perl -pne 's/.+;\d{5};\S+\s+(.+?);.+/$1/' < bestand.txt
Brielken
Kouteren
Boekelbaan
Kerk
Tonnestraat
Melkerij

Gaat er vanuit dat veld 4 altijd precies 5 digits is.

perl -pne 's/.+;[A-Z]\S+\s+(.+?);.+/$1/' < bestand.txt
Brielken
Kouteren
Boekelbaan
Kerk
Tonnestraat
Melkerij

Gaat er vanuit dat veld 5 altijd met een hoofdletter begint.
0 new messages