Tengo una gran cantidad de archivos, algunos de los cuales son muy largos. Me gustaría truncarlos a un cierto tamaño si son más grandes eliminando el final del archivo. Pero solo quiero eliminar líneas enteras. ¿Cómo puedo hacer esto? Se siente como el tipo de cosa que sería manejada por la cadena de herramientas de Linux, pero no sé cuál es el comando correcto.
Por ejemplo, supongamos que tengo un archivo de 120,000 bytes con líneas de 300 bytes y estoy tratando de truncarlo a 10,000 bytes. Las primeras 33 líneas deben permanecer (9900 bytes) y el resto debe cortarse. No quiero cortar exactamente a 10,000 bytes, ya que eso dejaría una línea parcial.
Por supuesto, los archivos tienen diferentes longitudes y las líneas no tienen la misma longitud.
Idealmente, los archivos resultantes se harían un poco más cortos en lugar de un poco más largos (si el punto de interrupción está en una línea larga), pero eso no es demasiado importante, podría ser un poco más largo si eso fuera más fácil. Me gustaría que los cambios se hicieran directamente a los archivos (bueno, posiblemente el nuevo archivo copiado en otro lugar, el original eliminado y el nuevo archivo movido, pero eso es lo mismo del POV del usuario). Una solución que redirige los datos a un montón de lugares y luego invita a la posibilidad de corromper el archivo y me gustaría evitar eso ...