SED et suppresion des espaces devant un caractére

Résolu
pcsystemd Messages postés 734 Statut Membre -  
pcsystemd Messages postés 734 Statut Membre -
Bonjour,

J'ai un fichier dont le contenu(un aperçu) est le suivant car le fichier comporte 13 champs en tout pour chaque ligne :

toto | 125 | lompd ce ci es tun lonhfk jdfgdji jdhdh | hjhdh | 54684
titi | 565 | fjfiff | hjhdh porur dpdidu podu odu
tutu | 89545 | tidkdhd lkjhsd hklhjsd | hjhdh klhdh hfhyrnch jfjyf

Chaque ligne commence par un espace et devant chaque pipe "|" il y a également un espace.

Je souhaiterais supprimer ces espaces.

Une idée?

Merci



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

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Et tu veux quoi à la fin comme résultat ?
    Plus d'espace du tout de part et d'autre des pipes ?

    $ cat plop 
     toto | 125 | lompd ce ci es tun lonhfk jdfgdji jdhdh | hjhdh | 54684
     titi | 565 | fjfiff | hjhdh porur dpdidu podu odu
     tutu | 89545 | tidkdhd lkjhsd hklhjsd | hjhdh klhdh hfhyrnch jfjyf 
    
    $ sed 's/ *\(^\||\) /\1/g' plop 
    toto|125|lompd ce ci es tun lonhfk jdfgdji jdhdh|hjhdh|54684
    titi|565|fjfiff|hjhdh porur dpdidu podu odu
    tutu|89545|tidkdhd lkjhsd hklhjsd|hjhdh klhdh hfhyrnch jfjyf 
    
    $


    0
  2. pcsystemd Messages postés 734 Statut Membre 23
     
    J'ai finalement trouvé. Il y a certainement plus simple mais bon cela fonctionne pour moi.

    sed -e 's/^ *//g';sed -e 's/| */|/g';sed -e 's/ *|/|/g'  fichier > fichier1


    Merci

    L'accès au savoir est la première liberté que chaque homme devrait avoir.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Il y a certainement plus simple
      Oui ;-))
      0
  3. pcsystemd Messages postés 734 Statut Membre 23
     
    Salut zipe31,

    j'espère que tu vas bien. On c'est croisé dans les posts ;-) . Effectivement ta solution est plus beaucoup simple .

    A+

    0