Deux opérations SED en une seule

Résolu
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



--
L'accès au savoir est la première liberté que chaque homme devrait avoir.

2 réponses

  1. Contributeur
    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
    1. Contributeur
      Étrangement cette syntaxe fait aussi l'affaire :
      $ sed -e 's/^ *\| *\(|\) */\1/g' fich
      blabla
      blabla|blablabla|bla|bla
      bla|bla
      bla|bla|bla
      
      $ 
      0
  2. 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