Bonjour,
Bien en fait il y a plusieurs possibilités, ca dépend de ton besoins (que je n'ai pas tout à fait saisi).
Soit tu fait un sed pour remplacer les ligne vides par le séparateur que tu souhaite :
cat fichier | sed -e s'/^$/<TON_SEPARATEUR>/'
Je ne pense pas que cette solution résolve ton problème, puisque tu obtiendra à nouveau des lignes séparée par quelque chose, et tu chercheras à nouveau à récupérer des blocs...
Donc, je proposerais cette solution là, qui est plus adaptée:
Un script contenant ceci:
#!/usr/bin/ksh
FILE=data.txt
END=$(cat data.txt | wc -l)
i=0
F_LINE=1
for T_LINE in $(grep -n -e '^$' $FILE | sed -e s'/://'g) $(( $END + 1 )) ; do
BLOC=$(tail -n$(( $END - $F_LINE + 1 )) $FILE | head -n$(( $T_LINE - $F_LINE )))
i=$(( $i + 1 ))
echo "Bloc : $i : "
echo "$BLOC"
F_LINE=$(( $T_LINE + 1 ))
done
Tu pourrais compléter ce script pour mettre ton traitement à la place du echo "$BLOC" (en rouge) puisque la variable $BLOC contient 1 bloc d'info
Lilian.
Poste le Thursday 18 November 2010 16:18:47