scripts script resueltos programacion pasar parametros espaƱol ejercicios ejemplos comandos linux shell awk cat

programacion - scripts linux ejercicios resueltos



Agregar marca de tiempo a salida de cat del script de shell (3)

Tengo un pequeño script que captura el resultado del ttyUSB en un archivo. Me gustaría adjuntar una marca de tiempo a cada línea. Desde la línea de comandos, esto hace todo lo que quiero:

$ cat /dev/ttyUSB0 /home/pi/daily_logs/ttyUSSB0 | awk ''{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }

Mi problema es que cuando lo agrego a un script todo funciona, pero la marca de tiempo awk no se agrega. Mi línea de script se ve así:

cat < /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 | awk ''{ print strftime("%Y-%m-%d %H:%M:%S"), $0; } &

Cualquier ayuda para hacer esto será apreciada.


Debe colocar el> / home / pi / daily_logs / ttyUSB0 después de la tubería. Al igual que:

cat </ dev / ttyUSB0 | awk ''{print strftime ("% Y-% m-% d% H:% M:% S"), $ 0; } ''> / home / pi / daily_logs / ttyUSB0


El uso inútil del gato está impidiendo la solución. Para minimizar los cambios necesarios, también puede hacer:

< /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 awk ''...'' &


Necesitas redirigir la salida de awk al archivo, no al de cat. Por la forma en que lo tienes, awk no obtiene nada. En realidad, es posible que no necesites gato en absoluto :

awk ''{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'' /dev/ttyUSB0 > /home/pi/daily_logs/ttyUSB0 &