Bonjour,
J'ai un fichier texte qui se termine pour chaque ligne par ^@.
Je voudrais supprimer ce caratère avec sed.
Comment faire ?
Merci.
Bonjour,
J'ai un fichier texte qui se termine pour chaque ligne par ^@.
Je voudrais supprimer ce caratère avec sed.
Comment faire ?
Merci.
Tu peux faire un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -e "s/^@$//" tonfichier > resfichier
Cela ne marche pas. Merci quand même
Je n'ai trouvé que cela comme solution :
Mais je pense que l'on peut faire mieux avec sed.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while read ligne do echo $ligne >> toto done < titi
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.
Attention : Il te faut remplacer les caractères ^@ par la séquence
d'echappement correspondante comme te l'indique MarcG.
Ç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//".
Envoyé par lulu70
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.
Merci à tout le monde pour les réponses.
Seul le tr fonctionne.![]()
Partager