저는 mplayer를 사용하고 있습니다. 모든 것을 로그 파일(/tmp/server.log)로 보내고 싶지만 볼륨 출력을 터미널에 기록하고 싶습니다. tee로 출력을 분할하는 방법이 있다는 것을 보았지만 제대로 작동하지 않는 것 같습니다. 이것이 내가 지금까지 가지고 있는 것입니다:
$mplayer /path/to/song.wav 1>tee /tmp/server.log | grep Volume 2> /tmp/server.log
모든 stdout 및 stderr을 로그 파일로 이동하고 싶지만 stdout의 Volume 줄만 터미널에 기록됩니다. 아니면 더 좋은 방법이 있나요?
답변1
사용 중이고 bash
"Volume"이 stderr에 나타나는 단어가 아니라고 가정합니다.
$ mplayer /path/to/song.wav 2>&1 | tee -a /tmp/server.log | grep -F Volume
이는 mplayer() 의 stdout과 stderr을 결합하여 추가합니다 ( 모든 행 에 대한 2>&1
단어를 참고하세요 .-a
/tmp/server.log
grep
Volume
답변2
이 시도. 가설bash
$ mplayer /path/to/song.wav 2>> /tmp/server.log | tee -a /tmp/server.log | grep Volume
stderr
여기에서는 먼저 파일에 추가 하고 stdout
거기에 전달 tee
하고 grep을 사용합니다.
이는 볼륨이 stderr에 있지 않다는 Anthon의 가정을 제거합니다.