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

Résolu/Fermé
mothers_of_intention Messages postés 2 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 12 janvier 2016 - 11 janv. 2016 à 12:24
mothers_of_intention Messages postés 2 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 12 janvier 2016 - 12 janv. 2016 à 12:43
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

Salut,

sed 's/^[ \t]*//;/^\(#\|*\|+\)/d' toto.txt | awk '!a[$0]++' > toto2.txt
1
mothers_of_intention Messages postés 2 Date d'inscription lundi 11 janvier 2016 Statut Membre Dernière intervention 12 janvier 2016
12 janv. 2016 à 12:43
aaaahhhhhhh !! merci !!
ça fonctionne très bien sans passer par 46 000 fichiers!
Merci!!
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 11/01/2016 à 19:32
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 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
11 janv. 2016 à 19:30
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