6 votes

Filtrez le code de sortie de la commande grep

Lorsque j'ai besoin de supprimer un certain type de sortie par exemple :

foo | grep -v bar

Mais parfois, foo ne donne que :

bar
bar
bar...

grep renverra -1. Comment puis-je transformer le code de sortie 1 en 0 ?

8voto

Duckboy Points 227

Vous pourriez toujours essayer de le rediriger à travers quelque chose d'autre, comme cat, pour vous débarrasser du code de sortie de grep - bien que cela puisse être un marteau plus gros que ce que vous voulez.

1voto

user27152 Points 193

Au moins en bash, vous pouvez utiliser

foo || (EC=$? ; if [ $EC -ne 1 ]; then exit $EC; fi)

Cela change le code de sortie 1 en 0, et ne change rien d'autre.

(Peut-être pas conforme à POSIX, mais probablement une version conforme à POSIX existe.)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X