Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Bash] retour à la ligne impossible à supprimer

Sujet résolu
    20 août 2022 à 6:58:58

    Bonjour OpenClassRooms ! Ce matin je fais un petit script bash afin de mettre en forme un fichier pour le convertir en format sql.

    Petit soucis, lorsque j'obtiens mon fichier final, j'ai un retour à la ligne après $line -> echo "(${actualLine}, ${line})," >> $fileOut mes caractères ",)" vont a la ligne, je me retrouve donc avec ceci :

    (1, a
    ),
    (2, b
    ),

    J'aimerais donc ne pas retourner à la ligne après $line. J'ai essayé avec tr -d '\n' et ${line/\n//}ou encore sed -i 's/$/ :SUFFIX &/' $fileOut pour rajouter à la fin de ma ligne un suffix mais toujours le même problème de retour à la ligne.

    Voilà mon code :

    #!/bin/bash
    
    fileIn=$(cat Address1)
    fileOut="output"
    actualLine=$((1))
    
    for line in $fileIn; do
        echo "(${actualLine}, ${line})," >> $fileOut
        actualLine=$((actualLine+1))
    done


    Merci à tous d'avoir pris le temps de me lire, bonne journée !

    Edit: J'ai trouvé, mon fichier d'entré était en Dos / Windows (CR LF) et il fallait le mettre en Unix (LF) pour que le traitement se fasse ...

    -
    Edité par Klos54 20 août 2022 à 12:42:24

    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2022 à 17:39:49

      +1
      :) 
      mais, ce n'est pas comme ça qu'on lit un fichier :
      #!/bin/bash
      
      while read -r line
      do
          echo "$((++nbL)),$line,"
      done <"$ficIn" >"$ficOut"
      ou bien ;
      nl --number-format=ln --number-separator=',' --number-width=1 "$ficIn" \
        | sed '/^ \+$/!s/$/,/' >"$ficOut"

      si j'ai bien compris ton besoin.

      -
      Edité par dantonq 20 août 2022 à 21:16:05

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

      [Bash] retour à la ligne impossible à supprimer

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown