Saya memiliki gambar disk 30GB dari partisi borked (berpikir dd if=/dev/sda1 of=diskimage
) bahwa saya perlu memulihkan beberapa file teks. Alat pahat data seperti foremost
hanya bekerja pada file dengan header yang terdefinisi dengan baik, yaitu bukan file teks biasa, jadi saya kembali ke teman baik saya strings
.
strings diskimage > diskstrings.txt
menghasilkan file teks 3gb yang berisi banyak string, sebagian besar barang tidak berguna, dicampur dengan teks yang sebenarnya saya inginkan.
Sebagian besar cruft cenderung sangat panjang, string omong kosong yang tak terputus. Barang-barang yang saya minati dijamin kurang dari 16kb, jadi saya akan memfilter file menurut panjang baris. Inilah skrip Python yang saya gunakan untuk melakukannya:
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()
Ini berfungsi, tetapi untuk referensi di masa mendatang: Apakah ada mantra satu baris ajaib (berpikir awk
, sed
) yang akan memfilter file berdasarkan panjang baris?