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

Anne -  
 Anne -
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

1 réponse

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
     
    Salut,

    sed 's/$/BACARA/'  TEST-Bacara-out-temp.csv > TEST-Bacara-out.csv
    est largement suffisant, sans avoir à passer par un script shell.
    0
    1. Anne
       
      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
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      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
    3. Anne
       
      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
    4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
       
      Affiche un extrait de ton fichier avec cette commende
      cat -A TEST-Bacara-out-temp.csv
      . 3 ou 4 lignes devraient suffire.
      0
    5. Anne
       
      J'ai le message suivant.....

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