docker execコマンドの出力でgrepを実行します。

docker execコマンドの出力でgrepを実行します。

質問がとても混乱していて表現が不都合なので質問を再表現しています...) -:

次のログを読み取るドッカーコンテナがあります。

docker exec -it my-container sh -c "export TERM=xterm && ls -t /logs/my-log.* | xargs zless -R"

今、私は出力に「grep」を使用したいのですが、これはうまくいくので問題が発生します。

docker exec -it my-container sh -c "export TERM=xterm && ls -t /logs/my-log.* | xargs zless -R | grep sometext"

これがうまくいかなくても:

docker exec -it my-container sh -c "export TERM=xterm && ls -t /logs/my-log.* | xargs zless -R" | grep sometext

(最初の作業コマンドは私が送信するコマンドにgrepを持ち、2番目の作業コマンドでは出力に対してgrepを実行します。)

スクリプト内でこのコマンドを実行していて、このスクリプトの出力でgrepを実行できるようにしたいので、これは私にとって重要です。

ベストアンサー1

スクリプトが「exec -it」を実行しています。 「t」はttyを示す。

zlessは、追加のパイプなしで前にttyがあると「考え」ています。

't'を削除すると問題が解決しました(今はzlessではなくzcatのように動作しますが、パイプは機能するため、単にパイプとしてless...)。

おすすめ記事