Probleme avec sed

Résolu
vieurou Messages postés 73 Statut Membre -  
vieurou Messages postés 73 Statut Membre -
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. vieurou Messages postés 73 Statut Membre 2
     
    j'ai deja essayer et ça n'as pas fonctionner
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. vieurou
     
    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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Alors essaie ça (le "^M" s'obtient par la combinaison de touches "CTRL-V" + "CTRL-M") :
    sed -e ' s/^M$//' -e :a -e '/^\n*$/ {$d;N;ba' -e '}'
    Voir : sed conversion retours chariots dos crlf unix lf

    ;-))
    0
  6. vieurou
     
    ça m'embete mais ça marche toujour pas ....
    0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Essaie ça alors :
    sed -e :a -e '/^\r\n*$/ {$d;N;ba' -e '}'
    ;-))
    0
  8. vieurou Messages postés 73 Statut Membre 2
     
    infernal mais toujours pas
    0
  9. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Que t'affiches la commandes "cat -A ton_fichier_DOS" comme caractères de fin de ligne et de lignes vides ?

    Des "^M$" ???
    0
  10. vieurou Messages postés 73 Statut Membre 2
     
    effectivement c'est bien des ^M$
    0
  11. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    affiche le résultat de
    perl -ne 's/(.)/ord($1)/eg;print' ton_fichier
    --
    lami20j
    0
  12. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Ben chez moi la commande marche bien ;-\
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      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
  13. vieurou Messages postés 73 Statut Membre 2
     
    les retour a la ligne on pour symbole 13
    pour la fin du fichier j'ai :
    424713
    13
    13
    13
    13
    
    0
  14. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Essaye en ASCII alors :
    sed 's/\x0D$//'
    ;-)
    0
  15. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Donc il s'agit bien du Carriage Return \r ;-))
    0
  16. vieurou Messages postés 73 Statut Membre 2
     
    ecxelent , ça fonctionne avec sed -i -e 's/\x0D$//' fichier_à_modifier
    0