PDA

Visualizza la versione completa : lettura campi con shell


ciottoin
15-09-2004, 21:46
Ciao a tutti
Ho un problema urgente da risolvere, e mi scuso da subito se fosse già presente nel forum ma la ricerca nn funzia.
:cry:

Leggo un file riga per riga tramite for i in `cat file`. C'è un modo per accedere alle singole parole di questo file. Cioè, il mio file ha il seguente formato:
cognome nome telefono
separati da uno spazio. Come faccio a prendere, per es, solo il nome?
Io ho provato ad utilizare awk, però non riesco a passare la riga letta ed inoltre non so come riportare da awk a shell il risultato.
(ah, per motivi"didattici":D nn posso usare SOLO awk ma devo utilizzare shell o al max shell+awk)

Grazie a tutti
Ciao!!!

adarkar
15-09-2004, 21:48
è una delle cose che ancora non so fare, ma con awk si dovrebbe potere.
comunque shell+awk=awk

osiryx
15-09-2004, 21:52
Provato con
cat file.txt | grep -i nomedacercare

adarkar
15-09-2004, 21:53
mi sa che non chiedeva questo :stordita:

osiryx
15-09-2004, 22:57
Ops

Con cat file.txt | cut -d " " -f1
Prendi il 1 campo però dell'intero file nel senso



linux mandrake suse
suse linux mandrake

l'output è
linux
suse

adarkar
15-09-2004, 23:22
allora secondo me fa bene a usare awk. o magari perl se lo mastichi!

Ilmalcom
15-09-2004, 23:37
Originariamente inviato da ciottoin
Ciao a tutti
Ho un problema urgente da risolvere, e mi scuso da subito se fosse già presente nel forum ma la ricerca nn funzia.
:cry:

Leggo un file riga per riga tramite for i in `cat file`. C'è un modo per accedere alle singole parole di questo file. Cioè, il mio file ha il seguente formato:
cognome nome telefono
separati da uno spazio. Come faccio a prendere, per es, solo il nome?
Io ho provato ad utilizare awk, però non riesco a passare la riga letta ed inoltre non so come riportare da awk a shell il risultato.
(ah, per motivi"didattici":D nn posso usare SOLO awk ma devo utilizzare shell o al max shell+awk)

Grazie a tutti
Ciao!!!

awk ' { print $1 } ' file.txt

Con questo comando stampa tutti i cognomi. Mettendo $2 stampa tutti i nomi ecc. Vedi se ti può bastare

osiryx
15-09-2004, 23:40
In pratica è la stessa cosa con cut

Ilmalcom
15-09-2004, 23:59
Originariamente inviato da osiryx
In pratica è la stessa cosa con cut
Esattamente, ma awk mi piace di più perchè è molto più potente :D

osiryx
16-09-2004, 00:04
:D :D

Loading