Deux opérations SED en une seule

Résolu
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -  
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -
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


2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Étrangement cette syntaxe fait aussi l'affaire :
$ sed -e 's/^ *\| *\(|\) */\1/g' fich
blabla
blabla|blablabla|bla|bla
bla|bla
bla|bla|bla

$ 
0
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   23
 
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
0