IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

suppression de ^@ dans un fichier texte


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut suppression de ^@ dans un fichier texte
    Bonjour,

    J'ai un fichier texte qui se termine pour chaque ligne par ^@.
    Je voudrais supprimer ce caratère avec sed.

    Comment faire ?

    Merci.

  2. #2
    Membre expérimenté
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Par défaut
    Tu peux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/^@$//" tonfichier > resfichier

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    Cela ne marche pas. Merci quand même

    Je n'ai trouvé que cela comme solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read ligne
    do
        echo $ligne >> toto
    done < titi
    Mais je pense que l'on peut faire mieux avec sed.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    la fameuse sequence de caractere ^@, est tu certain que c'est bien celle-ci ?
    d'ou provient ton fichier ? (je pense a un fichier provenant d'un machine windows).

    verifier le code de ce(s) caractere a l'aide de l'utilitaire od.
    (od -x mon fichier) ou option -c.

  5. #5
    Membre expérimenté
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2007
    Messages : 199
    Par défaut
    Attention : Il te faut remplacer les caractères ^@ par la séquence
    d'echappement correspondante comme te l'indique MarcG.

  6. #6
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Ça ne m'étonnerait pas que ce fichier ait été généré par un programme en C.
    Le caractère ^@ correspond au caractère nul (du moins sous vi/vim).

    Pour le supprimer, le plus simple est déjà de ne pas le générer, donc corriger le programme si possible.

    avec sed tu peux peut-être essayer la regexp "s/\000//".

  7. #7
    Membre émérite Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Par défaut
    Citation Envoyé par lulu70
    Bonjour,

    J'ai un fichier texte qui se termine pour chaque ligne par ^@.
    Je voudrais supprimer ce caratère avec sed.

    Comment faire ?

    Merci.

    Je pense que la commande la plus adéquate et :

    tr -d '\0' < infile > outfile



    http://pwet.fr/man/linux/commandes/tr

    DESCRIPTION
    Traduire, compresser et/ou éliminer des caractères de l'entrée standard, par écriture sur la sortie standard.

  8. #8
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 7
    Par défaut
    Merci à tout le monde pour les réponses.
    Seul le tr fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Suppression doublons dans un fichier texte de plus de 1 Go
    Par zouzoukha dans le forum WinDev
    Réponses: 47
    Dernier message: 25/07/2012, 08h19
  2. Suppression blocs dans un fichier texte
    Par julie20 dans le forum C
    Réponses: 1
    Dernier message: 17/10/2007, 12h23
  3. suppression dans un fichier texte
    Par zchallal dans le forum C
    Réponses: 2
    Dernier message: 01/05/2006, 20h43
  4. Suppression de lignes dans un fichier texte
    Par Isa31 dans le forum Langage
    Réponses: 16
    Dernier message: 26/01/2006, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo