Pipe Java для Grep: почему не работает?

1

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

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

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

  • 4
    Каков результат java -cp nasa-top-secret.jar gov.nasa.RocketToMoon ?
  • 0
    @nanda, это вызывает исключение OutOfMemoryException :)
Теги:
grep
pipe

2 ответа

18
Лучший ответ

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

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon 2>&1 | grep -v codehaus
  • 0
    Спасибо ар! Это сработало отлично.
3

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню