在返回提示模式之前修改二进制输出

在返回提示模式之前修改二进制输出

我有一个二进制文件,它会打印一个问题,然后等待用户回答。我无法访问这个二进制文件的源代码,但我想修改屏幕输出。

例子:

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

我想要显示:

Night 1
Night 2
Night 3
Please type the number:

在这种情况下,管道解决方案不起作用。

答案1

我找到了解决方案。首先,我用 strace 命令检查了二进制文件,发现它将输出打印到 STDERR 而不是 STDOUT。然后我使用重定向到 STDOUT,管道命令开始工作。

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

相关内容