Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2007, 09h45   #1
Membre confirmé
 
Avatar de linar009
 
Inscription : juillet 2006
Messages : 497
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 497
Points : 271
Points : 271
Par défaut Supprimer dernier end of line

Bonjour,

J'aurais souhaité savoir comment il était possible de supprimer le dernier end of line (eol) dans un fichier en ligne de commandes.

J'ai tenté un
Code :
sed 's/\x0a//' fichier > fichier2
mais rien n'y fait.

Je précise bien qu'il ne s'agit en aucun cas de retour chariot (^M ou \n)

Merci par avance.

Cordialement,
__________________
Je n'ai pas participé à de nombreuses courses de spermatozoïdes, mais j'ai donné de nombreux départs...
linar009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 13h30   #2
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 945
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 945
Points : 1 083
Points : 1 083
Déjà, tu te contredis : \x0a correspond au \n (qui est différent de ^M = \r).

Avec Sed, ce n'est pas possible de faire ça. En revanche, tu peux le faire avec Perl. A priori, ce code fait ce que tu souhaites :
Code :
perl -pe 's/\n// if eof' fichier > fichier2
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 10h11   #3
Membre confirmé
 
Avatar de linar009
 
Inscription : juillet 2006
Messages : 497
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 497
Points : 271
Points : 271
Ok merci.
Mais ta commande perl retire bien le \n mais pas uniquement le end of line.

J'ai quand même un gros doute sur le fait que la valeur hexa 0A corresponde à \n...
\n correspondrait plutôt au duo "0A 0D" (crLf). non ?

Finalement en cherchant longuement j'ai trouvé :

Code :
cat fichier | tr -d '\012' > fichierResultat
Merci pour votre aide.
__________________
Je n'ai pas participé à de nombreuses courses de spermatozoïdes, mais j'ai donné de nombreux départs...
linar009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 13h35   #4
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
OA sous unix pour \n
OA OD sous DOS (windows en Co)
__________________
Marc
Slackware for ever ......
BASH - KSH ( http://marcg.developpez.com/ksh/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 15h44   #5
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Donc si c'est ok, un petit peut-etre ?
merci du tuyau au fait
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2007, 21h53   #6
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 945
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 945
Points : 1 083
Points : 1 083
Citation:
Envoyé par linar009 Voir le message
J'ai quand même un gros doute sur le fait que la valeur hexa 0A corresponde à \n...
\n correspondrait plutôt au duo "0A 0D" (crLf). non ?
man ascii(7) est une commande utile.

0x0D = CR = \r
0x0A = LF = \n
CRLF = \r\n
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h50.


 
 
 
 
Partenaires

Hébergement Web