¿Cómo capturar la salida de un comando superior en un archivo en linux?

Quiero escribir la salida de un comando 'superior' específico en un archivo. Hice algunas búsquedas en Google y descubrí que se puede hacer usando el siguiente comando.

top -n 10 -b > top-output.txt

donde -n es para especificar el número de iteraciones y -b es para el modo por lotes. Esto funciona muy bien si se deja arriba para las 10 iteraciones. Pero si rompo la ejecución del comando con un Ctrl-C, el archivo de salida parece estar vacío.

No sabré el número de iteraciones de antemano, así que necesito dividirlo manualmente. ¿Cómo puedo capturar la salida de top en un archivo sin especificar iteraciones?

El comando que estoy tratando de usar precisamente es

top -b | grep init > top-output.txt

Y romperlo cuando quiera. Pero no funciona.

EDITAR: Para dar más contexto a la pregunta, tengo un código Java que invoca una herramienta con un archivo de entrada. Como en la herramienta, un archivo se toma como entrada y se ejecuta durante algún tiempo, luego toma el siguiente archivo y así sucesivamente. Tengo un conjunto de 100,000 archivos que se deben enviar a la herramienta. Así que ahora estoy tratando de monitorear esa herramienta específica (se ejecuta como un proceso en Linux). No puedo capturar todos los datos de 'top', ya que el archivo sería demasiado grande con datos no deseados. ¿Cómo capturar las estadísticas del sistema de ese proceso y escribirlo en un archivo usando top?

Respuestas a la pregunta(10)

Su respuesta a la pregunta