Deux opérations SED en une seule

Résolu
pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -
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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      É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. pcsystemd Messages postés 734 Statut Membre 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