Pipe Java для Grep: почему не работает? - PullRequest
1 голос
/ 25 февраля 2010

Я пытаюсь запустить эту ужасно простую команду в Bash

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

но grep не работает (он не отфильтровывает мою строку). Как я могу отфильтровать мой java вывод, используя grep?

Ответы [ 2 ]

19 голосов
/ 25 февраля 2010

Выход может быть на STDERR, попробуйте это вместо:

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon 2>&1 | grep -v codehaus
3 голосов
/ 25 февраля 2010

возможный сценарий

  1. у вас есть все строки с "codehaus", поэтому grep -v дает вам ничего такого. Я полагаю, вы знаете, что -v обозначает.
  2. ваша Java-программа не распечатана что-нибудь к stdout. Проверьте свои источник и убедитесь, что ваша программа выплескивается на стандартный вывод. В противном случае проверьте, не выводит ли из него stderr, что ваша программа выплевывает.

возможный шаг устранения неполадок:

  1. удалите канал к grep, запустите только Java-программу и сделайте уверен, что ваша программа имеет вывод.
  2. поставить 2>&1 в конце команды и попробуйте еще раз с grep
...