Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

223
Vistas
bash loop con GNU less que se actualiza cada 2 minutos

Tengo una máquina Linux con una carpeta de datos y una secuencia de comandos que produce un archivo de hoja de cálculo xlsx de informe sobre el contenido en constante cambio de la carpeta donde se ejecuta. Utilizo un script xlsx2tsv para convertirlo en texto tsv, lo que lleva menos de un segundo. La secuencia de comandos tarda aproximadamente 1 minuto en producir el archivo de hoja de cálculo y quiero tener una pantalla de terminal que muestre los resultados de la tabla en un búfer GNU menos, donde pueda moverme con los cursores y buscar contenido con /search , etc. de la versión más actualizada del contenido.

En este momento tengo una fiesta while true; do loop que primero calcula el contenido del script, luego lo transforma a tsv y lo canaliza a GNU less . Luego en otra pantalla de terminal tengo un while true; do un bucle que elimine el comando less cada 2 minutos. Pero esto me deja con 1 minuto de inactividad, donde estoy esperando que se actualice la hoja de cálculo antes de poder navegar por el contenido con less .

Me gustaría optimizar esta configuración para que se produzca una nueva hoja de cálculo en segundo plano, no cuando elimine el comando less, sino que comience 1 minuto antes, de modo que el comando less actualizado siempre me brinde una copia de trabajo que pueda navegar. Idealmente sin tener que crear una tercera ventana de terminal para ello.

¿Algunas ideas? ¿Quizás GNU paralelo?

Configuración actual:

 # 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
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Mi página de menos manual dice esto sobre el comando "R"

R Vuelva a pintar la pantalla, descartando cualquier entrada almacenada en el búfer. Útil si el archivo está cambiando mientras se está viendo.

Entonces, simplemente presione R para actualizar.

over 4 years ago · Santiago Trujillo Denunciar

0

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
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda