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)

smokinguns
fuente
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  
tuergeist
fuente