Script Bash

gabry451
Non riesco a risolvere questo dilemma. Praticamente ho un file organizzato con 4 campi : Matricola Cognome Nome datadinascita

Devo prendere i 4 campi di chiunque abbia come nome Luigi. Tenendo conto che per errore ci sono alcune persone che hanno Luigi come cognome :P

Il problema è che il commando grep 'Luigi' | awk ` { print $1 $2 $3 $4} ` mi stampa anche le persone che hanno cognome 'Luigi'

Come potrei ovviare a questo problema?

Risposte
anonymous_be1147
Ci sono diversi modi, dipende da come è strutturato il tuo file d'input. Se per esempio i campi sono separati da un carattere di tabulazione (\t) e vuoi/puoi usare awk, il seguente comando dovrebbe stamparti i record che cerchi

awk 'BEGIN {FS="\t"} $2 ~ /Luigi/ {print $0}' studenti.txt

Studenti.txt è chiaramente il nome del file che vuoi analizzare.

Potrebbe anche funzionarti quest'altro (simile al tuo)

grep 'Luigi' studenti.txt| awk '$2 ~ /Luigi/ {print $0}'

ma come detto dipende da come sono separati i vari campi. Ovviamente così ti verranno stampati anche i record degli studenti con un secondo nome o che si chiamano Luigino, etc. :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.