3

データフォルダーと、実行されているフォルダーの内容が絶えず変化するレポート xlsx スプレッドシートファイルを生成するスクリプトを備えた Linux マシンがあります。xlsx2tsv スクリプトを使用して、1 秒もかからずに tsv テキストに変換します。スクリプトがスプレッドシート ファイルを生成するのに約 1 分かかります。テーブルの結果を GNU レス バッファーに表示する端末画面が必要です。ここで、カーソルを使用して移動したり/search、 などでコンテンツを検索したりできます。コンテンツの最新バージョン。

現時点では、while true; do最初にスクリプトの内容を計算し、次にそれを tsv に変換してパイプする bash ループがありますGNU less。次に、別の端末画面に、2分ごとwhile true; doにコマンドを強制終了するループがあります。lessしかし、これにより、スプレッドシートが更新されるのを待ってless.

このセットアップを最適化して、less コマンドを強制終了したときではなく、1 分前に新しいスプレッドシートがバックグラウンドで生成されるようにして、更新されたlessコマンドが常にナビゲートできる作業コピーを提供するようにします。理想的には、3 番目のターミナル ウィンドウを作成する必要はありません。

何か案は?たぶんGNUパラレル?

現在のセットアップ:

# screen in the data folder with less command
while true; do $HOME/script -dir $PWD && xlsx2tsv $(ls $PWD/*.xlsx) 1 | column -t | less -S -N; sleep 0.5; done
# screen 2 with the less killing
while true; do pkill less; sleep 120; done
4

2 に答える 2

3

私のless man pageは、「R」コマンドについてこれを述べています

R 画面を再描画し、バッファリングされた入力を破棄します。表示中にファイルが変更されている場合に便利です。

だから、ただ叩いRてリフレッシュしてください。

于 2016-02-05T16:26:44.013 に答える
2
while true; do
  (sleep 0.5
   $HOME/script -dir $PWD &&
   xlsx2tsv $(ls $PWD/*.xlsx) 1 |
   column -t > new;
   mv new old;
   killall less
  ) &
  less -S -N old
done
于 2016-02-05T17:36:24.500 に答える