Как добавить настраиваемую строку в вывод ошибки и перенаправить ее в файл - PullRequest
0 голосов
/ 28 мая 2020

Учитывая :

Команда ffprobe, которая определяет продолжительность mp4 видеофайлов на удаленном хосте.

Ожидается :

Вывод ffprobe имеет префикс настраиваемой строки и перенаправляется в текстовый файл.

Проблема :

Иногда из-за сетевой ошибки, ffprobe выдает сообщение об ошибке. Я хотел бы зафиксировать эту ошибку, добавить к ней специальную строку и отправить ее в текстовый файл.

Пример :

Эта команда добавляет «ABC = 55» до out.txt, где 55 - обнаруженная продолжительность:

ffprobe -v error -show_entries format = duration -of default = noprint_wrappers = 1: nokey = 1 https://example.com/video.mp4 ' | awk '{print "ABC =" $ 1}' 2> & 1 >> out.txt

Однако, если та же самая команда обнаруживает сетевую ошибку, вместо записи «ABC = Сообщение об ошибке здесь», он записывает запись в текстовый файл и показывает это сообщение в консоли.

Вопрос

Как мне настроить эту часть, чтобы фиксировать ошибки выполнения, добавив к ним префикс «ABC =» и отправьте на out.txt?

| awk '{print "ABC =" $ 1}' 2> & 1 >> out.txt

Спасибо.

РЕДАКТИРОВАТЬ

Это решило проблему:

2> & 1 | awk '{print "ABC =" $ 0}'

1 Ответ

1 голос
/ 28 мая 2020

Попробуйте:

ffprobe cmd... 2>&1|awk '{print "ABC="$1}' >output.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...