Linux: перенаправление stdout и stderr

Я хочу записать stdout в файл, но также и печатает stdout и stderr. Я пытался использовать мишень:

prog | tee stdout.txt

но это заставляет печатный stderr и stdout быть чередованным неправильно, т.е. если корректный вывод должен быть

OUT1 ERR1
OUT2 ERR2
OUT3 ERR3
OUT4 ERR4

использование мишени могло бы распечатать их не в порядке, например:

ERR1 ERR2
OUT1
OUT2 
OUT3 ERR3 
OUT4
ERR4

Там какой-либо путь состоит в том, чтобы распечатать и stdout и stderr, чтобы экранировать и также записать stdout в файл без пожирания печатный вывод?

3
задан 19.05.2011, 09:42

0 ответов

Я передал бы stdout файлу, затем использовать хвост для наблюдения содержания файла, как это записано. Это означает, что у Вас должно быть два открытые терминала.

Терминал один:

prog > stdout.txt

Терминальные два:

tail -f stdout.txt

Так, в терминальных двух Вы будете видеть stdout содержание, как оно записано в stdout.txt, и в терминале один Вы будете видеть stderr. Можно также передать и stdout и stderr в файл, и сделать то же самое. В этом случае необходимо использовать prog >& outerr.txt. (Это будет работать над tcsh, но можно сделать это в ударе, также.)

1
ответ дан 08.12.2019, 02:16

Теги

Похожие вопросы