プロンプトモードに戻る前にバイナリ出力を変更する

プロンプトモードに戻る前にバイナリ出力を変更する

質問を印刷してからユーザーが答えるのを待つバイナリがあります。このバイナリのソースコードにアクセスできませんが、画面出力を修正したいと思います。

例:

> ./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:

その後、ユーザーが選択するのを待ちますが、選択しませんDayNight

答え1

straceでバイナリをチェックした結果、STDERR write(2, "Day 1", ...) を書くことが見つかり、
出力をSTDERRからSTDOUTにリダイレクトして直ちに修正しました。

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

関連情報