Comment supprimer les sauts de lignes

Comment supprimer les sauts de lignes - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 16-04-2007 à 12:21:50    

par exemple, j'ai un fichier "testfichier":

1premier ligne
 
 
2deuxiemem ligne,
 
 
 
3troisieme ligne


 
j'aimerais supprimer les lignes vides et ainsi obtenir  
 

1premier ligne
2deuxiemem ligne,
3troisieme ligne


 
j'ai essayé sed 's/^\n//g' testfichier
mais cela ne marche pas....
 
J'ai l'impression que mon pattern de recherche n'est pas correct. Pourtant je recherche tout simplement les saut de ligne en début de ligne. Nop ?  
Il y a pas plus simple, non ?  
 
Ou ai je merdé ?

Reply

Marsh Posté le 16-04-2007 à 12:21:50   

Reply

Marsh Posté le 16-04-2007 à 14:34:45    

Salut,  
Il me semble plutot que le \n soit en fin de ligne et pas au debut.
à verifier.

Reply

Marsh Posté le 16-04-2007 à 14:42:51    

weed a écrit :

par exemple, j'ai un fichier "testfichier":

1premier ligne
 
 
2deuxiemem ligne,
 
 
 
3troisieme ligne


 
j'aimerais supprimer les lignes vides et ainsi obtenir  
 

1premier ligne
2deuxiemem ligne,
3troisieme ligne


 
j'ai essayé sed 's/^\n//g' testfichier
mais cela ne marche pas....
 
J'ai l'impression que mon pattern de recherche n'est pas correct. Pourtant je recherche tout simplement les saut de ligne en début de ligne. Nop ?


 
1. la fin de ligne dans sed (et la plupart des autres trucs à base de regexp) c'est $
2. sed -i /^$/d tonfichier.txt
 
Edit : bon en fait j'explique :
-i pour être en mode interactif, ie le fichier va être modifié à la volée, du coup on est pas obligé de passer par une redirection
/^$/ : je matche les lignes pour lesquelles la fin de la ligne ($) suit immédiatement le début de la ligne (^)
d : je supprime la ligne qui matche avec mon critère


Message édité par G Abitbol le 16-04-2007 à 14:58:13
Reply

Marsh Posté le 16-04-2007 à 16:55:07    

le \n c'est debut de ligne
et \r c'est la fin
 
ou l'inverse xD


---------------
Au royaume des aveugles, les borgnes sont rois xo0
Reply

Marsh Posté le 16-04-2007 à 17:03:25    

utb diablo a écrit :

le \n c'est debut de ligne
et \r c'est la fin
 
ou l'inverse xD


euh, ou pas...
\n, c'est le saut de ligne unix, \r, c'est le saut de ligne mac, et \r\n, c'est le saut de ligne windows, mais aucun n'est un début de ligne :o/

Reply

Marsh Posté le 31-07-2007 à 14:34:34    

Up :o
 
Je voudrais faire quelque chose de semblable : supprimer les sauts de lignes par des espaces.

1premier ligne  
2deuxiemem ligne,  
3troisieme ligne


1premier ligne 2deuxiemem ligne, 3troisieme ligne


 
Quelqu'un a une commande sous la main ?
 
 :hello:


---------------
FREE DATOUNE
Reply

Marsh Posté le 31-07-2007 à 16:27:17    

man xargs

Reply

Marsh Posté le 31-07-2007 à 16:30:53    

$ cat iii
iiiiiii
fff
 
 
 
 
 
 
 
vfff
 
rvv
 
vf
 
$ sed /^$/d iii
iiiiiii
fff
vfff
rvv
vf
 
$ sed /^$/d iii|xargs
iiiiiii fff vfff rvv vf

Reply

Marsh Posté le 31-07-2007 à 16:39:16    

Merci :jap:
 
EDIT : un "cat fichier | xargs" suffit.


Message édité par Jeddo le 31-07-2007 à 16:42:08

---------------
FREE DATOUNE
Reply

Marsh Posté le 31-07-2007 à 18:22:42    

on peu aussi faire cat file | tr '\n' ' '


---------------
Blog photo/récits activités en montagne http://planetcaravan.net
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed