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
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, tantocygstart
comomintty
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 comandotail
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 procesotail
se ejecuta en segundo plano.Aquí tienes un ejemplo del comando que puedes usar:
Esto ejecutará el comando
tail
en segundo plano y escribirá la salida en el archivolrp-log.txt
. Asegúrate de probar y ajustar el comando según tu caso de uso.