Como capturar a saída de um comando top em um arquivo no linux?

Eu quero escrever a saída de um comando 'top' específico para um arquivo. Eu fiz um pouco de googling e descobri que isso pode ser feito usando o seguinte comando.

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

onde -n é para especificar o número de iterações e -b é para o modo batch. Isso funciona muito bem se deixar o topo para as 10 iterações. Mas se eu quebrar a execução do comando com um Ctrl-C, o arquivo de saída parece estar vazio.

Eu não vou saber o número de iterações antes da mão, então eu preciso quebrá-lo manualmente. Como posso capturar a saída do topo em um arquivo sem especificar iterações?

O comando que estou tentando usar é precisamente

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

e quebre quando quiser. Mas isso não funciona.

EDIT: Para dar mais contexto à questão, eu tenho um código Java que invoca uma ferramenta com um arquivo de entrada. Como na ferramenta pega um arquivo como entrada e roda por algum tempo, então pega o próximo arquivo e assim por diante. Eu tenho um conjunto de 100.000 arquivos que precisam ser alimentados para a ferramenta. Então, agora eu estou tentando monitorar essa ferramenta específica (Ele é executado como um processo no linux). Eu não posso capturar o conjunto de dados do topo como o arquivo como seria muito grande com dados indesejados. Como capturar as estatísticas do sistema de apenas esse processo e gravá-lo em um arquivo usando top?

questionAnswers(10)

yourAnswerToTheQuestion