Salut,
pour les besoins d'un script gitlab ci, je voudrais faire un grep (reverse) sur la sortie (stdout ?) d'une commande clang-tidy.
Ma commande est la suivante :
$ clang-tidy -p=build --config-file=_clang-tidy --quiet file.hxx | grep -Pvi "^[[:digit:]]*\swarnings\sgenerated"
Le problème, c'est que quand je fais ça, je vois quand même apparaitre les warnings de clang-tidy du type
31198 warnings generated.
Mais si je fais,
echo "31198 warnings generated." | grep -Pvi "^[[:digit:]]*\swarnings\sgenerated"
la sortie est bien vide, ce qui est le résultat que j'attends…
Est-ce que vous pouvez m'expliquer, s'il vous plait, ce que je ne fais pas bien…
Merci d'avance pour votre aide.
Olivier
# grep sur stderr
Posté par ney . Évalué à 4. Dernière modification le 30 mars 2023 à 16:22.
Probablement que clang-tidy envoie les warnings sur stderr au lieu de stdout et toi tu grep que sur stdout.
Pour grep sur les deux sorties, tu peux faire avec bash :
(Note le |& lors du pipe.)
[^] # Re: grep sur stderr
Posté par gUI (Mastodon) . Évalué à 5.
Oh merci pour la syntaxe je la connaissais pas !
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: grep sur stderr
Posté par ney . Évalué à 2. Dernière modification le 30 mars 2023 à 16:25.
Avec plaisir ! C'est propre à bash par contre.
[^] # Re: grep sur stderr
Posté par gUI (Mastodon) . Évalué à 5.
Et j'apprends au passage que >& redirige
stdout
etstderr
…Moins con ce soir, toussa…
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# stdout vs stderr
Posté par gUI (Mastodon) . Évalué à 10. Dernière modification le 30 mars 2023 à 16:23.
Alors j'ai pas regardé en détail ta regexp on dira qu'elle est bonne. Tu as peut-être ton grep qui parse le
stdout
alors que les messages sont surstderr
?Essaie avec ça :
EDIT : se référer à cette meilleure syntaxe
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: stdout vs stderr
Posté par Anthony Jaguenaud . Évalué à 4.
Au moins, ta syntaxe elle standard… ce n’est pas une basherie ;-)
# Merci à tous pour vos réponses
Posté par Olivier LEMAIRE (site web personnel) . Évalué à 1.
Je tiens à vous remercier pour vos réponses.
En cherchant un peu on peut aussi envoyer le résultat vers un fichier avec l'option
Les logiciels de traitement de texte sont à la rédaction ce que la 2CV est à l'automobile, une vieille voiture dont on se souvient avec nostalgie mais technologiquement dépassée
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.