Menu

Deux opérations SED en une seule [Résolu/Fermé]

Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
- - Dernière réponse : pcsystemd
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
- 18 avril 2013 à 13:54
Bonjour,

je fais actuellement deux opérations avec SED sur un fichier afin de supprimer tous les espaces en début de ligne puis pour supprimer tous les espaces avant/après le pipe '|' donc :

sed -e 's/^ *//g' fichier > fichier1
sed 's/ *\(^\||\) /\1/g' fichier1 > fichier2


Est il possible de faire cela avec une seule commande SED ?

Merci


Afficher la suite 

2 réponses

Messages postés
36624
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 juillet 2019
3708
0
Merci
Salut,

$ cat fich  
 blabla 
   blabla | blablabla|bla |bla 
bla | bla 
  bla|  bla    | bla 

$ sed -e 's/^ *//g;s/ *\(|\) */\1/g' fich 
blabla 
blabla|blablabla|bla|bla 
bla|bla 
bla|bla|bla 

$


Zen my nuggets ;-)
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
zipe31
Messages postés
36624
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 juillet 2019
3708 -
Étrangement cette syntaxe fait aussi l'affaire :
$ sed -e 's/^ *\| *\(|\) */\1/g' fich
blabla
blabla|blablabla|bla|bla
bla|bla
bla|bla|bla

$ 
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
16
0
Merci
Salut zipe31

Curieux puisque j'avais testé la première méthode mais j'avais une erreur du style sed: -e expression n°1.

Merci