es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cygwin cigstart y mintty no escriben tail -f canalizado a grep a archivo.

Estoy tratando de crear un archivo .sh que ejecute un proceso y luego escriba parte de la salida del registro en un archivo separado. Tengo casi todo funcionando excepto una forma de hacer que cygwin realmente escriba en el archivo. Ambos comandos siguientes muestran una nueva ventana de cygwin y parecen seguir el archivo de registro, pero ninguno escribe en el archivo de salida:

cygstart tail -f ./logs/full-log.txt | grep --line-buffered "LOG_FILE:" > ./logs/lrp-log.txt
mintty tail -f ./logs/full-log.txt | grep --line-buffered "LOG_FILE:" > ./logs/lrp-log.txt

Lo siguiente funciona, pero me gustaría incorporarlo a mi script más grande, por lo que necesito una forma de hacer que se ejecute en segundo plano para que mi script pueda continuar:

tail -f ./logs/full-log.txt | grep --line-buffered "LOG_FILE:" > ./logs/lrp-log.txt
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para escribir la salida de un proceso en un archivo separado, puedes usar el operador > para redirigir la salida a un archivo. En los ejemplos proporcionados, tanto cygstart como mintty abren nuevas ventanas que pueden evitar escribir la salida en un archivo. En su lugar, debes ejecutar el proceso directamente en la ventana de la terminal usando el comando tail seguido de >, y un nombre de archivo para la salida.

    Para ejecutar el proceso en segundo plano, puedes usar el operador & al final del comando. Esto permitirá que tu script continúe ejecutándose mientras el proceso tail se ejecuta en segundo plano.

    Aquí tienes un ejemplo del comando que puedes usar:

    tail -f ./logs/full-log.txt | grep --line-buffered "LOG_FILE:" > ./logs/lrp-log.txt &
    

    Esto ejecutará el comando tail en segundo plano y escribirá la salida en el archivo lrp-log.txt. Asegúrate de probar y ajustar el comando según tu caso de uso.

Comments are closed.