Bonjour,
Ne peux-tu pas appeler trois grep séparés par des pipes ?
Un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part find resultat -type f | grep tache | grep Temps | grep Power > resultat/resultat.txt
Bonjour,
Ne peux-tu pas appeler trois grep séparés par des pipes ?
Un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part find resultat -type f | grep tache | grep Temps | grep Power > resultat/resultat.txt
Une autre piste awk: découper le fichier en prennant DA= comme séparateur d'enregistrement (RS), vérifier si au moins un record contient les valeurs de DA et SL recherchées et sortir de suite pour éviter de parcourir inutilement le fichier dès les conditions réunies.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DA="2012-08-07" FL="FRLRH" find ... -exec | zcat | awk '/'$DA'/&&/'$FL'/{print FILENAME;exit}' RS="DA="
Comme dirait notre ami, UMQ!
Lorsque ni DA ni FL ne contient d'espace (ce qui est bien le cas ici), tout va bien!
Mais, pour que la formule que tu proposes soit plus universelle et éviter le message:
je propose d'utiliser plus de quotes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part awk: non-terminated regular expression 2012... at source line 1
ou, plus simplement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ... -exec | zcat | awk '/'"$DA"'/&&/'"$FL"'/{print FILENAME;exit}' RS="DA="
voire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ... -exec | zcat | awk "/$DA/&&/$FL/{print FILENAME;exit}" RS="DA="
Code : Sélectionner tout - Visualiser dans une fenêtre à part find ... -exec | zcat | awk "/${DA}/&&/${FL}/{print FILENAME;exit}" RS="DA="
Partager