Изменение двоичного вывода перед возвратом в режим подсказки - PullRequest
0 голосов
/ 23 января 2020

У меня есть двоичный файл, который печатает вопрос, а затем ждет ответа пользователя. У меня нет доступа к исходному коду этого двоичного файла, но я хочу изменить вывод на экран.

Пример:

> ./commandx 
 Day 1
 Day 2
 Day 3
 Please type the number:

Я хочу отобразить:

Night 1
Night 2
Night 3
Please type the number:

В этом случае решение для канала не работает.

Пример:

. / Commandx | sed 's / Day / Night / g'

 Day 1
 Day 2
 Day 3
 Please type the number:

тогда он ждал выбора пользователя, но день не меняется на Night

1 Ответ

0 голосов
/ 27 января 2020

Я нашел решение. Сначала я изучил двоичный файл с помощью команды strace и обнаружил, что он выводит вывод в STDERR вместо STDOUT. Затем я использовал перенаправление на STDOUT, и команда pipe начала работать.

./commandx 2>&1 | perl -pe  's/Day/Night/g'
...