grep ключевое слово из вывода Mplayer и отправить остальное в файл

Я использую mplayer. Я хочу отправить все в файл журнала (/tmp/server.log), но я хочу, чтобы объемный вывод записывался в терминал. Я видел, что есть способ разделить выход с тройником, но я не могу заставить его работать. Это то, что у меня есть до сих пор:

$mplayer /path/to/song.wav 1>tee /tmp/server.log | grep Volume 2> /tmp/server.log 

Я хочу, чтобы ВСЕ stdout и stderr заходили в файл журнала, но только строки с Volume из stdout записывались в терминал. Или есть лучший способ сделать это?

2 Solutions collect form web for “grep ключевое слово из вывода Mplayer и отправить остальное в файл”

Предполагая, что вы используете bash и что «Volume» – это не слово, которое появляется на stderr:

  $ mplayer /path/to/song.wav 2>&1 | tee -a /tmp/server.log | grep -F Volume 

Это объединяет stdout и stderr из mplayer ( 2>&1 ), добавляет (обратите внимание на /tmp/server.log -a на /tmp/server.log и grep для слова Volume .

Попробуй это. Предполагая, что bash

 $ mplayer /path/to/song.wav 2>> /tmp/server.log | tee -a /tmp/server.log | grep Volume 

здесь я впервые добавляю stderr в файл и передаю только stdout для tee и используя grep оттуда.

Это исключает предположение Антона об объеме не в stderr. надеюсь это поможет.

Interesting Posts
Linux и Unix - лучшая ОС в мире.