Script Bash
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
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?
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

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
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
Studenti.txt è chiaramente il nome del file che vuoi analizzare.
Potrebbe anche funzionarti quest'altro (simile al tuo)
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.
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.
