我有一个二进制文件,它会打印一个问题,然后等待用户回答。我无法访问这个二进制文件的源代码,但我想修改屏幕输出。
例子:
> ./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'