/ / redirect stderr to stdout І окремий файл? - perl, linux [duplicate] - linux, perl, io-redirection

перенаправити stderr на stdout І окремий файл? - perl, linux [дублікат] - linux, perl, io-redirection

Я хотів би перенаправити як stdout, так і stderrдля file1, але також переспрямовувати тільки stderr на файл2. Чи це можливо? У мене є робочий скрипт для частини 1, але неможливо з'ясувати, як додатково написати stderr до файлу 2, не перезаписувати перенаправлення до файлу 1 (насправді перший stderr перенаправлення йде до stdout, який потім йде до file1). Я " m, намагаючись зробити це, так що файл1 може містити заявки на друк і помилки, як це було, якби я працював у консолі, а файл2 просто вносить повідомлення про помилки.

Будь-яка ідея про найкращий спосіб досягти цього, не занадто сильно відкинувшись від того, що я вже маю?

open STDOUT, ">", "$file1" or die $!; # redirect stdout to file
open STDERR, ">&STDOUT" or die $!; # redirect standard error to stdout
# now how to *also* redirect STDERR to $file2?

Дякую

Редагувати: Я не вірю, що це дублікат це питання; це я, я пропускаю це. Вони хотіли отримати вивід на екран та в журнал, я хочу, щоб stdout / stderr переходив до того ж файлу, крім того, що stderr йшов до іншого власного файлу. Я не хочу (або не можу бачити) будь-який вихід на екрані. Це подібно до мого 3-го часу написання в Perl, так що це дуже новий для мене. Я вже кілька годин дивився на нього (у тому числі вже дивився на "дубльований" запис, який ви зв'язали), і не може знайти розумне рішення моя проблема.

Відповіді:

3 для відповіді № 1

Ви можете спробувати модуль Perl IO :: Tee який дозволяє переспрямовувати вихід на більш ніж одну вивідну ручку.