6

Linuxで、同じように出力を列に表示できる、ある種のパッケージ/APIを探していますtop

たとえば、一定の間隔で出力をクリーンアップして全画面に書き換え続けます(watchはおそらくこれで十分だと思いますが、その上にラップするAPIがいくつかあることを望んでいます)。

列で簡単に並べ替えます。特に列Aで並べ替えると、次にすべてを再印刷するときに、出力が更新されるたびにその列Aで並べ替えることを覚えています。

そしてもちろん、理想的には、私にとってもキーボード入力を処理できます。

全体として、出力を「」整理する方法で整理するのに役立つパッケージまたはAPIを探していますtop

明確にするために、私が表示するものは、システム統計とは完全に無関係である可能性があります。topがコンテンツを整理する方法が好きです。たとえば、私の出力コンテンツは次のようになります(そして、それは絶えず変化しているため、クリーンアップして書き直す必要があります)。

時間Col1Col212
4 13
13 5 19
14 5 15

「A」というキーを押すと、時間で並べ替えられます。キーBを押すと、Col1でソートされます。Cと言うキーを押すと、Col2などで並べ替えられます。

そしてもちろん、この出力コンテンツは完全にメモリ内にあり、任意のデータ構造で編成できます。

4

3 に答える 3

2

これをシェルで実行したい場合は、watch + printf を開始するのが手っ取り早いでしょう。数秒ごとにスクリプトを再実行するには watch を使用し、フォーマットを行うには printf を使用します。

printf '%-20s %-20s\n' \
  header1 header2 \
  line1data1 line1data2 \
  line2data1 line2data2 ...

...データはおそらく配列で構築され、配列から供給されます。スクリプト内で単純にループし、適切な制御コードを発行して、上書きしようとしているときに各行をクリアする (そして最初にウィンドウの上部に移動する) のも、もう 1 つの妥当な方法です。

そうは言っても、ここでの適切なツールは、呪いの上に構築されたレイヤーです。高レベルのテキスト ウィジェット セットはすでに多数ありますが、テーブルを直接サポートしているものは知りません。

C を書くつもりなら、curses のラッパーの 1 つにGAP.Browseがあります。

于 2012-04-20T19:35:36.393 に答える
2

この種の要件には、Python の curses ライブラリが便利であることがわかりました。まだ列管理をサポートしていませんが、適切な言語、優れたドキュメント、および管理しやすい学習曲線を備えたまともなソリューションを提供します.

他の誰かがより良い提案をしている場合は、彼を最良の回答として喜んで選びます。

http://docs.python.org/howto/curses.html

于 2012-04-21T17:45:01.467 に答える
0

CDKがあります。試してみたところ、大丈夫です。少しGTKのように感じます。しかし、printfソリューションははるかにクリーンです。

スクリプト言語を気にしない場合は、より多くの機能を備えたrbcurseを試すことができます。ただし、非常に悪いドキュメントがあります。

于 2012-04-20T20:09:27.267 に答える