Ajouter une mot en fin de ligne

Résolu/Fermé
bennylane Messages postés 6 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 12 août 2008 - 12 août 2008 à 17:00
bennylane Messages postés 6 Date d'inscription mardi 12 août 2008 Statut Membre Dernière intervention 12 août 2008 - 12 août 2008 à 19:37
Bonjour à tous,

J'ai un fichier du type:

LEC000315L 180874 KLC0171816G_1 10
LAB69020 178968 LAB69020_1 10
LAB69079 179970 LAB69079_1 12
LAB69212 179971 LAB69212_1 24
NOVN32928N 176794 ZNOVN32928_1 98

J'aimerais ajouter le mot "FIN" à la fin de chacune des ligne à la même position.

pour obtenir ceci:
LEC000315L 180874 KLC0171816G_1 10 FIN
LAB69020 178968 LAB69020_1 10 FIN
LAB69079 179970 LAB69079_1 12 FIN
LAB69212 179971 LAB69212_1 24 FIN
NOVN32928N 176794 ZNOVN32928_1 98 FIN

Voici mon script:

NB_LIGNES=`awk 'END {print NR}' $2`
NUM_LIGNE=1
LG_LIGNE=202

until [ "$NUM_LIGNE" = "$NB_LIGNES" ]
do
NB_CAR=`head -$NUM_LIGNE $2 |tail -1|wc -c`

NB_ESP=`expr $LG_LIGNE - $NB_CAR`
IND=1
STRI="fin "
until [ "$IND" = "$NB_ESP" ]
do
STRI=" $STRI"
IND=`expr $IND + 1`
done

sed -e "$NUM_LIGNE s/.*/&$STRI/" $2 >> /share/PN4000/Part.txt

NUM_LIGNE=`expr $NUM_LIGNE + 1`
done

Mon problème c'est que la commande sed recopie le fichier au complet à chaque passage.

Comment faire pour ne modifier que la ligne courante?
Merci pour vos réponses!

8 réponses

Voilà, ça devrait marcher ;)

sed 's/$/ FIN/g' fichier
0