Tengo una imagen de disco de 30 gb de una partición borked (creo dd if=/dev/sda1 of=diskimage
) de la que necesito recuperar algunos archivos de texto. Las herramientas de tallado de datos foremost
solo funcionan en archivos con encabezados bien definidos, es decir, no en archivos de texto sin formato, por lo que he recurrido a mi buen amigo strings
.
strings diskimage > diskstrings.txt
produjo un archivo de texto de 3 gb que contiene un montón de cadenas, en su mayoría cosas inútiles, mezcladas con el texto que realmente quiero.
La mayor parte de la ruina tiende a ser muy larga e ininterrumpida de galimatías. Las cosas que me interesan están garantizadas en menos de 16 kb, por lo que voy a filtrar el archivo por la longitud de la línea. Aquí está el script de Python que estoy usando para hacerlo:
infile = open ("infile.txt" ,"r");
outfile = open ("outfile.txt","w");
for line in infile:
if len(line) < 16384:
outfile.write(line)
infile.close()
outfile.close()
Esto funciona, pero para referencia futura: ¿Hay encantamientos mágicos de una sola línea (pensemos awk
, sed
) que filtrar un archivo de longitud de la línea?