2010-02-25 5 views
1

Je suis en train d'exécuter cette commande affreusement simple BashPipe Java to Grep: Pourquoi ne pas travailler?

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon | grep -v codehaus 

mais grep ne fonctionne pas (il ne filtre pas ma chaîne). Comment puis-je filtrer ma sortie java en utilisant grep?

+4

Quel est le résultat de '' java -cp nasa-top-secret.jar gov.nasa.RocketToMoon''? – nanda

+0

@nanda, il provoque une exception OutOfMemory :) –

Répondre

18

La sortie pourrait être sur STDERR, Essayez ceci:

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon 2>&1 | grep -v codehaus 
+0

Thanks ar! Cela a fonctionné parfaitement. –

3

scénario possible

  1. vous avez réellement toutes les lignes avec "Codehaus" , si grep -v vous donne rien . Je suppose que vous savez ce que signifie -v . Votre programme Java n'a pas imprimé rien à stdout. Vérifiez votre source et assurez-vous que votre programme crache sur stdout. Sinon, vérifiez si son stderr que votre programme crache.

étape de dépannage possible:

  1. enlever le tuyau à grep, exécutez uniquement le programme java et assurez-vous que votre programme a sortie.
  2. mis 2>&1 à la fin de la commande et essayer à nouveau avec grep