BashでテーブルなどのCLIディスプレイを作成する最良の方法は何ですか?

BashでテーブルなどのCLIディスプレイを作成する最良の方法は何ですか?

私は大規模なUSBフラッシュテストのために(内部的に使用される)Bashスクリプトを書いていますf3。複数の列とセルを持つテーブル型のインターフェイスを表示する必要があります。

現在私はprintfwithを使用しています:

ここに画像の説明を入力してください。

ログファイルにテキストを書き込む各ドライブに対して別々の機能を実行します。これらのログファイルは解析され、ユーザーに情報を表示します。

ご覧のとおり、一部の行にはあってはならないオフセットがありますが、削除できません。印刷される長い文字列のために発生したようには見えません。私はそれが何であるかわからない。

私が経験しているもう1つの問題はリフレッシュ時間であり、時々stderrメッセージが表示されたり、一部のファイルが正しく読み取られなかったときに全画面を手動で消去して再描画する必要がgrepありますcat

現在、このスクリプトを部分的に再構築しており、画面にデータを印刷することができます。調べてみようかと思いましたncursesが、それは少し複雑すぎてメンテナンスも複雑になることがありました。

echoORprintコマンドをテキストファイルにダンプし、一度にすべて実行してデフォルトでテキスト「バックバッファ」を持たせることで、更新がより一貫して高速化される方法があるかどうか疑問に思います。

また、ユーザーのキーストロークを聞いてバックグラウンドで反応できるといいですが、それが優先順位ではありません。

おそらくBashでこの種の作業を行うより良い方法があるかもしれませんが、わかりません。

ベストアンサー1

使用法はcolumn -tあなたに合うべきです。

おすすめ記事