[bash] Problème pour enchaînement de commandes

Résolu
mothers_of_intention Messages postés 2 Statut Membre -  
mothers_of_intention Messages postés 2 Statut Membre -
Bonjour à toutes et à tous,

Je suis débutante en programmation je m'excuse d'avance si la question s'avère naïve...

J'ai pour but de nettoyer un certain nombre de fichiers .txt, je voulais donc enlever tous les espaces et tabulation de début de lignes, ensuite enlever toutes les lignes commençant par des +#* après tout ça, enlever les lignes en double dans l'ensemble du fichier.

J'ai réussi à faire quelque chose comme ça:

 sed 's/[ \t]*//' toto.txt > toto2.txt | sed '/^#|*|+/d' toto2.txt > toto3.txt | awk '!a[$0]++' toto3.txt > toto4.txt 

mais je me dis qu'il doit bien y avoir la possibilité d'enchaîner les commandes sans créer 2 fichier en plus ?!

Alors j'ai tenté ça :
 sed 's/[ \t]*//' | sed '/^#|*|+/d' | awk '!a[$0]++' toto.txt > toto2.txt 

ainsi que d'autre variantes (avec ; ou &&) , et ça ne donne rien...

Donc je sais pas si je cafouille, et où est-ce que je cafouille...

En vous remerciant d'avance pour votre aide! Bonne journée!

2 réponses

  1. UnGars
     
    Salut,

    sed 's/^[ \t]*//;/^\(#\|*\|+\)/d' toto.txt | awk '!a[$0]++' > toto2.txt
    1
    1. mothers_of_intention Messages postés 2 Statut Membre
       
      aaaahhhhhhh !! merci !!
      ça fonctionne très bien sans passer par 46 000 fichiers!
      Merci!!
      0
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    cat data.txt
    TAB
    ##Comment
    +Hello
    *pointer


    sed -e 's/^[#\+\*\t]\+//' data.txt 
    TAB
    Comment
    Hello
    pointer


    Gates gave ^W  sold  you the windows.
    GNU gave us the whole house.(Alexandrin)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      Ce n'est pas ce qui est demandé ;-\

      je voulais donc enlever tous les espaces et tabulation de début de lignes,
      Ça c'est bon ;-)

      ensuite enlever toutes les lignes commençant par des +#*
      Ça ce n'est pas bon ;-(
      0