मेरे पास एक 30gb डिस्क छवि है जो एक विभाजन विभाजन (लगता है dd if=/dev/sda1 of=diskimage
) कि मुझे कुछ पाठ फ़ाइलों को पुनर्प्राप्त करने की आवश्यकता है। डेटा नक्काशी उपकरण foremost
केवल अच्छी तरह से परिभाषित हेडर के साथ फाइलों पर काम करते हैं, अर्थात सादे पाठ फ़ाइलें नहीं, इसलिए मैं अपने अच्छे दोस्त पर वापस आ गया हूं strings
।
strings diskimage > diskstrings.txt
एक 3Gb पाठ फ़ाइल का उत्पादन किया जिसमें तार का एक गुच्छा होता है, जिसमें अधिकतर बेकार सामान होता है, जिसे मैं वास्तव में चाहता हूं कि पाठ के साथ मिलाया जाता है।
अधिकांश क्रुफ़ वास्तव में लंबे समय तक बने रहते हैं, यह अस्पष्टता के अटूट तार हैं। जिस सामान में मेरी दिलचस्पी है वह 16kb से कम होने की गारंटी है, इसलिए मैं फ़ाइल को लाइन की लंबाई से फ़िल्टर करने जा रहा हूं। यहाँ पायथन लिपि का उपयोग कर रहा हूँ:
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
जो लाइन की लंबाई से एक फ़ाइल को फ़िल्टर करेगा?