#!/bin/bash
# dato un file nel formato:
# nomeutente1 indirizzo1
# datanascita1 telefono1 
# nomeutente2 indirizzo2
# datanascita2 telefono2 
# ....
# produrre in output
# nomeutente1 telefono1
# nomeutente2 telefono2
# ...
# se il nome del file è passato come parametro:

cat "$1" | while read NOME INDIRIZZO ; do
	read DATA TELEFONO
	echo $NOME $TELEFONO
done

# Se i campi possono contenere spazi, non funziona più.
# Nel caso, ipotizzando che il separatore di campi sia ":"

cat "$1" | while read RIGA ; do
	NOME=$(echo $RIGA | awk -F ':' '{ print $1 }')
	read SECONDARIGA
	TELEFONO=$(echo $SECONDARIGA | awk -F ':' '{ print $2 }')
        echo $NOME $TELEFONO
done

# Posso sfruttare direttamente il word splitting della shell
# ma devo stare attento a non interferire con comandi 
# che si aspettano la presenza dello spazio in IFS
# (sebbene di default IFS sia vuota)

export  IFS=":"
cat "$1" | while read NOME INDIRIZZO ; do
	read DATA TELEFONO
	echo $NOME $TELEFONO
done

# più prudente, limita la modifica di IFS al solo 
# contesto di esecuzione dei comandi read

cat "$1" | while IFS=":" read NOME INDIRIZZO ; do
	IFS=":" read DATA TELEFONO
	echo $NOME $TELEFONO
done