2009-06-22 6 views
4

m'a donné this syntaxe par l'utilisateur phi
trouver et grep Suppress « ne peut pas ouvrir » sortie

find . | awk '!/((\.jpeg)|(\.jpg)|(\.png))$/ {print $0;}' | xargs grep "B206" 

Je voudrais supprimer la sortie de grep: ne peut pas ouvrir ..... et trouver: Impossible d'ouvrir les lignes à partir des résultats.

sortie de l'échantillon à être ignoré:

grep: can't open ./cisc/.xdbhist 
find: cannot open ./cisc/.ssh 

Répondre

12

Avez-vous essayé de rediriger stderr vers/dev/null? Donc, ce qui précède redirige le flux n ° 2 (qui est stderr) vers/dev/null. Cela dépend de la coque, mais ce qui précède devrait fonctionner pour la plupart. Parce que find et grep sont des processus différents, vous devrez peut-être le faire pour les deux, ou (peut-être) exécuter dans un sous-shell. par exemple.

find ... 2>/dev/null | xargs grep ... 2>/dev/null 

Here's une référence à une documentation sur la redirection bash. Sauf si vous utilisez csh, cela devrait fonctionner pour la plupart.

+0

im un peu hésitant à essayer .... qu'est-ce que faire exactement? il ne semble pas qu'il fera ce dont j'ai besoin, mais c'est à partir d'un 370 en parlant à un 9,733 – CheeseConQueso

+1

Il provoque simplement toutes les erreurs à envoyer à/dev/null, où ils seront ignorés. –

+1

Il fait l'hypothèse (que je n'ai pas vérifiée, j'avoue) que vos erreurs ci-dessus ressortent sur std err. 2>/dev/null redirigera les erreurs vers/dev/null (une corbeille) de la même manière que (par exemple) find ...> /tmp/find.results redirigera std vers un fichier –

Questions connexes