[TXT] Supprimer le dernier caractère

Khalzaam -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour à tous,

J'ai un soucis sur un fichier texte.
Il est généré par SQLplus, et je me retrouve avec des lignes de 362 caractères, là où il ne m'en faut que 361. Il rajoute un caractère "blanc" à chaque fin de ligne ...
Du coup, je cherche une commande qui me permettrait de supprimer ce dernier caractère à chaque fin de ligne.
Si quelq'un avait la réponse, ça m'éaiderait énormément !

Merci d'avance !

2 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Une commande en quel langage?
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    A ne pas oublié qu'une ligne est une chaîne avec un caractère de fin de ligne :

    Linux \n
    Win \r\n

    Exemple :

    Je crée un fichier à la volée qui contiendra la lettre 'a', 361 fois
    $ perl -e 'print "a" x 361' > vider
    j'affiche sa longueur
    $ perl -ne 'print length,"\n"' vider
    361
    j'ajoute une autre chaîne (pas ligne)
    $ perl -e 'print "b" x 361' >> vider
    et je compte
    $ perl -ne 'print length,"\n"' vider
    722
    Maintenant je vais créer des lignes de 361 caractères + caractère fin de ligne donc 362
    $ perl -e 'print "a" x 361,"\n"' > vider
    $ perl -e 'print "b" x 361,"\n"' >> vider
    $ perl -ne 'print length,"\n"' vider
    362
    362
    
    Le résultat 362 est normal.
    Si j'ai besoin que de la chaîne il me reste à enlever le caractère nouvelle ligne
    $ perl -ne 'print length(substr($_,0,length($_)-1)),"\n"' vider
    361
    361
    

    Et les chaines de 361 caractères affichées (j'ai mis la longueur en 1er et j'ai ajoute dans print un \n pour affichage sinon l'affichage est un chaine de 361 * 2 caractères.
    lami20j@debian:~/trash$ perl -ne 'print length($1),$1,"\n" if /(.*)\n/' vider
    361aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    361bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
    

    C'est à titre d'exemple et pas pour apprendre Perl.

    lami20j
    0