ฉันมีดิสก์อิมเมจ 30gb ของพาร์ติชัน borked (คิดว่าdd if=/dev/sda1 of=diskimage
) ที่ฉันต้องการกู้คืนไฟล์ข้อความบางไฟล์ ข้อมูลการแกะสลักเครื่องมือเช่นการทำงานเฉพาะในไฟล์ที่มีส่วนหัวที่กำหนดไว้อย่างดีเช่นไม่ไฟล์ข้อความธรรมดาดังนั้นฉันได้กลับลดลงในเพื่อนที่ดีของฉันforemost
strings
strings diskimage > diskstrings.txt
ผลิตไฟล์ข้อความ 3gb ที่มีสตริงจำนวนมากซึ่งส่วนใหญ่เป็นสิ่งที่ไร้ประโยชน์ผสมกับข้อความที่ฉันต้องการจริง ๆ
เรือลาดตระเวนส่วนใหญ่มีแนวโน้มที่จะยาวและไม่มีเรี่ยวแรงมากนัก สิ่งที่ฉันสนใจรับประกันได้ว่าจะน้อยกว่า 16kb ดังนั้นฉันจะกรองไฟล์ตามความยาวบรรทัด นี่คือสคริปต์ 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
) ที่จะกรองไฟล์โดยความยาวสายหรือไม่?