Возможно, я упускаю что-то маленькое, но возможно ли достичь этого синтаксиса в соответствии с POSIX (тире):
$ ./myApp 2> stderr.txt 1> stdout.txt
Я знаю, что в тире нельзя использовать >&
, но нужно использовать2>&1
но я не хочу этого делать.У меня есть куча данных, поступающих в stdout, и я не хочу анализировать их, чтобы получить мой stderr.Я чувствую, что упускаю что-то чрезвычайно простое, но я не могу указать на это ...
Прямо сейчас, когда я запускаю вышеуказанную команду, я получаю только несколько строк моего стандартного вывода (3), но это показываетв файле stderr, и stdout пуст.Я также пробовал различные способы группировки, но все же мне не повезло.Не уверен, что происходит ...
ОБНОВЛЕНИЕ
Это формат текущей команды, которую я выполняю, чтобы вы могли видетьполный эффект того, что я пытаюсь достичь:
$ LD_PRELOAD=/usr/lib/libtcmalloc.so /usr/bin/time -p myApp -c -f inputFile 2> stderr 1> stdout
Здесь я упомянул, что пробовал несколько вариантов группирования с ().Кроме того, исполняемый файл myApp
не разветвляется.
Я думал, что эта команда будет работать, но я нашел иначе:
$ LD_PRELOAD=/usr/lib/libtcmalloc.so /usr/bin/time -p (myApp -c -f inputFile) 2> stderr 1> stdout