Ajout d'une valeur en fin de ligne d'un fichier .CSV

Fermé
Anne - Modifié par Anne le 18/04/2014 à 09:57
 Anne - 18 avril 2014 à 12:30
Bonjour,

Cela fait 2 jours que je galère pour simplement ajouter le mot BACARA à la fin de chaque ligne de mon fichier TEST.csv , même en allant fouiller dans les forums

Voici un extrait du dernier script que j'ai lancé et qui fonctionne jusqu'à la copie du fichier entrée TEST.csv en TEST-Bacara-out-temp.csv, script que je lance via une commande shell sur un serveur unix.

....
cat TEST.csv >> TEST-Bacara-out-temp.csv

while read ligne
do
sed -e 's/'$ligne'/ BACARA/$' TEST-Bacara-out-temp.csv > TEST-Bacara-out.csv
done < TEST-Bacara-out-temp.csv


RESULTAT:
Pour chaque ligne de mon fichier j'ai l'erreur suivante:
sed: Function s/00000645 cannot be parsed.

00000645 est la 1ère valeur rencontrée sur la ligne de mon fichier qui est construit ainsi:

00000645 012020102P260 3 20110210 100211 100211 190603 N F P AFR 01125354
00000690 494630000P006 3 20100607 070610 070610 081298 N F P P64 00000690
00000858 069833048Z148 3 20090930 300909 300909 190603 N F Z ZVMP 01125375
00001046 110600202Z002 3 20110510 100511 100511 120401 N F Z ZIAC 01038288
00001137 5224100000001 3 20111205 051211 051211 111298 N F A AP7 00001137
00001164 5236300000001 3 20100615 150610 150610 111298 N F A AP7 00001164
00001302 5039900000092 3 20110912 120911 120911 141298 N F A ASP 00001302
00001622 030210000P230 3 20091231 311209 050112 120401 N G P AFR 01038376
00001872 494410000R013 3 20110214 140211 140211 200603 N F R TRL 01125522
00001879 494410000Z038 3 20110215 150211 150211 200603 N F Z ZIAT 01125523

Pourquoi ? Merci d'avance pour votre aide
Cordialement
Anne
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
18 avril 2014 à 09:57
Salut,

sed 's/$/BACARA/'  TEST-Bacara-out-temp.csv > TEST-Bacara-out.csv
est largement suffisant, sans avoir à passer par un script shell.
0
Merci mais c'est une condition : je suis obligée d'utiliser un script shell (qui sera appelé par une autre appli)...as-tu une autre idée?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
18 avril 2014 à 10:03
Pour chaque ligne de mon fichier j'ai l'erreur suivante:
sed: Function s/00000645 cannot be parsed.
Ton fichier CSV est à quel format ? MsDos ou Unix ?

mais c'est une condition : je suis obligée d'utiliser un script shell
Ok, mais la lecture ligne par ligne est inutile. La condition remplie, il faut juste passer la commande telle que je l'ai notée.
0
OK . Il est au format Unix. J'ai lancé ta commande mais le problème c'est que BACARA est inséré entre les lignes.... j'ai le résultat suivant :
00000645 012020102P260 3 20110210 100211 100211 190603 N F P AFR 01125354
BACARA
00000690 494630000P006 3 20100607 070610 070610 081298 N F P P64 00000690
BACARA
00000858 069833048Z148 3 20090930 300909 300909 190603 N F Z ZVMP 01125375
BACARA
00001046 110600202Z002 3 20110510 100511 100511 120401 N F Z ZIAC 01038288
BACARA
etc...


Merci encore...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
18 avril 2014 à 10:36
Affiche un extrait de ton fichier avec cette commende
cat -A TEST-Bacara-out-temp.csv
. 3 ou 4 lignes devraient suffire.
0
J'ai le message suivant.....

cat: illegal option -- A
Usage: cat [-benrstuv] [-|File ...]
0