Probleme avec sed

Résolu
bonjour

je souhaite a l'aide d'un script shell supprimer les ligne blanche situé en fin de fichier , jutilise pour cela
sed -i -e :a -e '/^[ |\n|\t]*$/ {$d;N;ba' -e '}'
mais ça marche pas , quelqu'un aurait il une idée??

merci d'avance
Configuration: Linux kubuntu 
Firefox 2.0.0.6

16 réponses

  1. j'ai deja essayer et ça n'as pas fonctionner
    0
    1. Modérateur
      Le fichier en question est un fichier Unix ou Windows ? (en rapport aux fins de ligne différentes sur les 2 systèmes)

      Peux-tu le mettre en copie sur Cjoint s'il te plait si ce n'est pas du domaine du confidentiel ;-))
      0
      1. bonjur,
        le fichier en question à traiter est effectivement un fichier créé sous windows, plus précisément sous le bloc-note de windows
        et effectivement c'est du code confidentiel
        merci de ton aide
        0
        1. ça m'embete mais ça marche toujour pas ....
          0
          1. Modérateur
            Essaie ça alors :
            sed -e :a -e '/^\r\n*$/ {$d;N;ba' -e '}'
            ;-))
            0
            1. infernal mais toujours pas
              0
              1. Modérateur
                Que t'affiches la commandes "cat -A ton_fichier_DOS" comme caractères de fin de ligne et de lignes vides ?

                Des "^M$" ???
                0
                1. effectivement c'est bien des ^M$
                  0
                  1. Modérateur
                    Salut,

                    affiche le résultat de
                    perl -ne 's/(.)/ord($1)/eg;print' ton_fichier
                    --
                    lami20j
                    0
                    1. Modérateur
                      Ben chez moi la commande marche bien ;-\
                      0
                      1. Modérateur
                        Salut,

                        des fois c'est vraiment bizarre, c'est pour ça que je prefère la conversion en ASCII, au moins on peut voir exactement ce qu'on doit supprimer ou ajouter à la fin ;-)
                        0
                    2. les retour a la ligne on pour symbole 13
                      pour la fin du fichier j'ai :
                      424713
                      13
                      13
                      13
                      13
                      
                      0
                      1. Modérateur
                        Essaye en ASCII alors :
                        sed 's/\x0D$//'
                        ;-)
                        0
                        1. Modérateur
                          Donc il s'agit bien du Carriage Return \r ;-))
                          0
                          1. ecxelent , ça fonctionne avec sed -i -e 's/\x0D$//' fichier_à_modifier
                            0