[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!
A voir également:

2 réponses

UnGars
 
Salut,

sed 's/^[ \t]*//;/^\(#\|*\|+\)/d' toto.txt | awk '!a[$0]++' > toto2.txt
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
jisisv Messages postés 3678 Statut Modérateur 934
 
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
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
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