Eu tenho um grande número de arquivos, alguns dos quais são muito longos. Gostaria de truncá-los para um determinado tamanho, se eles forem maiores, removendo o final do arquivo. Mas eu só quero remover linhas inteiras. Como posso fazer isso? Parece o tipo de coisa que seria tratada pela cadeia de ferramentas Linux, mas não sei o comando certo.
Por exemplo, digamos que eu tenho um arquivo de 120.000 bytes com linhas de 300 bytes e estou tentando truncá-lo para 10.000 bytes. As primeiras 33 linhas devem permanecer (9900 bytes) e o restante deve ser cortado. Não quero cortar exatamente 10.000 bytes, pois isso deixaria uma linha parcial.
Obviamente, os arquivos têm diferentes comprimentos e as linhas não têm o mesmo comprimento.
Idealmente, os arquivos resultantes seriam reduzidos um pouco mais do que um pouco mais (se o ponto de interrupção estiver em uma longa linha), mas isso não for muito importante, poderá ser um pouco mais longo se for mais fácil. Gostaria que as alterações fossem feitas diretamente nos arquivos (bem, possivelmente o novo arquivo foi copiado em outro lugar, o original foi excluído e o novo arquivo foi movido, mas é o mesmo do POV do usuário). Uma solução que redireciona dados para vários lugares e depois convida a possibilidade de corromper o arquivo e eu gostaria de evitar isso ...