Cómo redirigir los valores del comando superior a un archivo en Mac OSX


3

Todo, quiero extraer valores de arriba para propósitos de trazado. Actualmente estoy usando el siguiente comando

top -l 0 -s 1  -pid 12345 -stats rsize | awk 'NR%13==0'  

Cuando ejecuto esto, obtengo el resultado esperado. Pero cuando intento redirigir la salida a un archivo ejecutando lo siguiente:

top -l 0 -s 1  -pid 299 -stats rsize | awk 'NR%13==0' > output.txt  

No funciona. ¿Qué debo hacer para redirigir la salida a un archivo?

Estoy en una Mac OSX (Lion)


1
Parece que el modo por lotes (-b) no está implementado en OS X. Puede establecer un valor mayor para -l (por ejemplo, "-l 10"), pero no podrá ver la salida hasta después de que se haya completado el script , por ejemplo, "tail -f output.txt" no funcionará para el monitoreo.
lupincho

@lupincho: el único problema es el almacenamiento en búfer awk.
tuergeist

Respuestas:


2

Su expresión es rigurosa, pero tenga en cuenta que awk amortigua su salida. Por lo tanto, agregar fflush(stdout)a su parte awk ayudará.

top -l 0 -s 1  -pid 299 -stats rsize | awk 'NR%13==0; fflush(stdout)' > output.txt  
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.