У меня 30-гигабайтный образ диска с разделенным на части разделом (думаю dd if=/dev/sda1 of=diskimage
), из которого мне нужно восстановить некоторые текстовые файлы. Инструменты для вырезания данных, например, foremost
работают только с файлами с четко определенными заголовками, то есть не с простыми текстовыми файлами, поэтому я остановился на своем хорошем друге strings
.
strings diskimage > diskstrings.txt
создал 3-гигабайтный текстовый файл, содержащий кучу строк, в основном бесполезных, смешанных с текстом, который я на самом деле хочу.
Большая часть хутора имеет тенденцию быть действительно длинными, непрерывными рядами тарабарщины. Вещи, которые меня интересуют, гарантированно будут меньше 16 КБ, поэтому я собираюсь отфильтровать файл по длине строки. Вот скрипт Python, который я использую для этого:
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()
Это работает, но для дальнейшего использования: существуют ли магические заклинания в одну строку (думаю awk
, sed
), которые бы фильтровали файл по длине строки?