Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/11/2007, à 22:28

graffity2199

[RESOLU] Suppression du caractère "Saut de ligne"

Bonjour à  tous,

Pour la réalisation d'un script bash, j'ai besoin de supprimer tous les caractères "saut de ligne" d'un fichier texte, ou \n dont le code hexadécimal est 0a.
Malgré mes recherches sur la commande sed, cela ne marche pas.
J'ai essayé les commandes suivantes, sans succès :

sed 'N;s/\xOa//g' fichier1.txt > fichier2.txt
sed 'N;s/\n//g' fichier1.txt > fichier2.txt

J'ai également essayé de doubler les \ et d'enlever le N qui permet de lire la ligne suivante. En fait, la deuxième commande m'en supprimer certains mais pas tous !

Le but est donc de trouver une commande qui transforme mon fichier txt en 1 seule ligne.
Merci d'avance

Dernière modification par graffity2199 (Le 12/11/2007, à 19:40)

Hors ligne

#2 Le 11/11/2007, à 22:50

sywave

Re : [RESOLU] Suppression du caractère "Saut de ligne"

salut ! alors je ne sais pas si ca va t'aider mais il me semble qu'il faut aussi enlever le caractere 13 (à  vérifier) mais en lisant un fichier caractere par caractere, il me semble etre tombé sur le caractere 10(new line) et 13(carraige return) pour le retour chariot.

bon courage smile

Hors ligne

#3 Le 11/11/2007, à 22:51

abetsic

Re : [RESOLU] Suppression du caractère "Saut de ligne"

Bonsoir,

tu peux essayer

tr '\n' ' '

qui supprime les sauts de lignes.

Hors ligne

#4 Le 12/11/2007, à 03:54

Alain.g

Re : [RESOLU] Suppression du caractère "Saut de ligne"

Bonjour

Avec sed, il faudrait s'y prendre comme ceci :

sed ':a;N;$!ba;s/\n//g' fichier1.txt > fichier2.txt

Comme le conseille abetsic, il est plus simple d'utiliser tr.
Pour juste supprimer, sans remplacer :

tr -d '\n' < fichier1.txt > fichier2.txt

Dernière modification par Alain.g (Le 12/11/2007, à 03:56)


Xubuntu Karmic !

Hors ligne

#5 Le 12/11/2007, à 19:09

Link31

Re : [RESOLU] Suppression du caractère "Saut de ligne"

sywave a écrit :

salut ! alors je ne sais pas si ca va t'aider mais il me semble qu'il faut aussi enlever le caractere 13 (à  vérifier)

Seulement dans les fichiers créés sous windows.

Et pour simplifier encore le problème, sous Mac OS <= 9 c'était 13 uniquement...

Hors ligne

#6 Le 12/11/2007, à 19:43

graffity2199

Re : [RESOLU] Suppression du caractère "Saut de ligne"

Merci à  tous, j'ai finalement utilisé la commande

tr -d '\r\n' < fichier1.txt > fichier2.txt

pour également supprimer les retours chariots et les sauts de lignes étant donné que je ne sais pas si j'ai un fichier unix ou dos.

Cela marche également avec la commande

sed ':a;N;$!ba;s/\n//g' fichier1.txt > fichier2.txt

par contre je ne comprend pas les caratcères en début de commande : :a;N;$!ba; ; si quelqu'un pouvait m'expliquer.

En tout cas merci à  tous.

Hors ligne

#7 Le 09/12/2008, à 01:59

luron

Re : [RESOLU] Suppression du caractère "Saut de ligne"

graffity2199 a écrit :

par contre je ne comprend pas les caratcères en début de commande : :a;N;$!ba; ; si quelqu'un pouvait m'expliquer.

+1

Merci. smile

Hors ligne