そのため、デバッグ情報をログに記録し、それを stdout に送信してから、文字列を grep します。ある時点で、ロギングが完了し、アプリケーションが何かを待っていますが、grep の出力は途中で切り捨てられます。したがって、行に一致しましたが、その行のすべてを出力しませんでした。
grep を強制的にフラッシュする方法はありますか?
ありがとう。
更新: --line-buffered が役立つようです。
--line-buffered フラグを使用して grep で問題を解決したと思います。また、アプリケーションが各行の後に stdout をフラッシュしていることを確認してください。stdout が端末の場合、行バッファリングがデフォルトですが、それを別のプログラムにパイプすると、デフォルトでフル バッファリングが使用されます。
--line-buffered フラグを持たないプログラム (uniq など) にデータをパイプする場合は、stdbuf プログラム (http://www.pixelbeat.org/programming/stdio_buffering/stdbuf) を参照してください。 -man.html) を使用すると、任意のプログラムのバッファリング オプションを変更できます。
問題の概要といくつかの一般的な解決策については、http://www.pixelbeat.org/programming/stdio_buffering/を参照してください。