[OT] [o forse no?] bash:parsing dei files di testo
Ciao a tutti.
Oggi parliamo di bash.
Ho bisogno di fare uno script in bash che interpreti un file di testo che si
presenta in questo formato:
# commenti
<campo1riga1> <campo2riga2> <campo3riga3> <campo4riga4>
<campo1riga2> <campo2riga2> <campo3riga2> <campo4riga2>
eccetera. Il numero di righe non è noto a priori: ho quindi pensato che un
for potesse andare bene. I campi sono separati dal carattere di
tabulazione, quindi /usr/bin/cut sembra tornare utile. I commenti li
elimino con un grep -v "^#". Peccato che il for non legga i dati una riga
alla volta ma un campo alla volta, ovvero
for i in `cat $FILETESTO | grep -v "^#"` ; do
echo "$i";
echo "Passo al valore successivo";
done
mi restituisce:
<campo1riga1>
Passo al valore successivo
<campo2riga1>
Passo al valore successivo
ecc...
mentre quello che avrei bisogno io è
<campo1riga1> <campo2riga2> <campo3riga3> <campo4riga4>
Passo al valore successivo
<campo1riga2> <campo2riga2> <campo3riga2> <campo4riga2>
Passo al valore successivo
in modo da poter ritagliare ogni singolo campo con /usr/bin/cut.
Sapete come posso fare per far leggere al for il file una riga per volta
invece che un campo per volta? Oppure esiste qualcosa di diverso dal for
per questo scopo?
Reply to: