SSH経由でコンピュータに接続しssh machine
て実行すると、インストールされているyum list
すべての項目が期待どおりに出力されます。重要なことは、各項目が次のように1行にあることです。
xz-devel.i386 4.999.9-0.3.beta.20091007git.el5 base
xz-devel.x86_64 4.999.9-0.3.beta.20091007git.el5 base
xz-libs.i386 4.999.9-0.3.beta.20091007git.el5 base
xz-lzma-compat.x86_64 4.999.9-0.3.beta.20091007git.el5 base
ただし、これをリモートで実行したり、ssh machine 'yum list'
サーバーのgrepにパイプしたりすると、yum list | grep xz -C 3
出力行は次のように「切り捨てられて」短くなります。
xz-devel.i386 4.999.9-0.3.beta.20091007git.el5
base
xz-devel.x86_64 4.999.9-0.3.beta.20091007git.el5
base
xz-libs.i386 4.999.9-0.3.beta.20091007git.el5
base
xz-lzma-compat.x86_64 4.999.9-0.3.beta.20091007git.el5
base
このように線のサイズが縮小するのを防ぐにはどうすればよいですか?私の究極の希望はこれをパイプtee
し、ansibleを介してすべてのホストの出力ファイルに対していくつかの処理を実行することです。
SSH/パイプラインの一部である一種の「仮想ターミナル」によってこのようなことが発生するようです。接続が切断された状態で実行中の端末のサイズを小さくすると、同じ動作が得られるためですyum list
。したがって、パイプを追加すると、幅yum list
がX列にすぎないことを端末に知らせることができると仮定します。
ベストアンサー1
すべてこの回答@thrigがコメントに提供されているとおり、次のようにして正しく出力されるようにすることができました。
yum list installed | xargs -n3 | column -t