我有一台带有数据文件夹的Linux机器和一个脚本,该脚本可以在运行它的文件夹的不断变化的内容上生成报告xlsx电子表格文件。我使用xlsx2tsv脚本将其转换为tsv文本,这需要不到一秒钟。该脚本大约需要1分钟来生成电子表格文件,我希望有一个终端屏幕显示GNU less缓冲区中表格的结果,我可以使用游标移动,并使用/search
搜索内容等最新版本的内容。
目前我有一个bash while true; do
循环,它首先计算脚本的内容,然后将其转换为tsv并将其传递给GNU less
。然后在另一个终端屏幕中,我有一个while true; do
循环,每2分钟就会杀死less
命令。但这让我有1分钟的不活动时间,我在等待电子表格更新,然后才能使用less
导航内容。
我想优化此设置,以便在后台生成新的电子表格,而不是在我删除less命令时,但是在1分钟之前启动,以便更新的less
命令始终为我提供工作副本我可以导航理想情况下,无需为其创建第三个终端窗口。
有什么想法吗?也许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
答案 0 :(得分:3)
我的man页面说的是关于“R”命令
R重新绘制屏幕,丢弃任何缓冲的输入。如果文件在更改时有用 正在观看。
所以,只需按 R 进行刷新。
答案 1 :(得分:1)
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