Tôi có một hình ảnh đĩa 30gb của một phân vùng borked (nghĩ dd if=/dev/sda1 of=diskimage
) mà tôi cần khôi phục một số tệp văn bản từ. Các công cụ khắc dữ liệu như foremost
chỉ hoạt động trên các tệp có tiêu đề được xác định rõ, tức là không phải tệp văn bản thuần túy, vì vậy tôi đã dựa vào người bạn tốt của mình strings
.
strings diskimage > diskstrings.txt
đã tạo ra một tệp văn bản 3gb chứa một chuỗi các chuỗi, chủ yếu là những thứ vô dụng, trộn lẫn với văn bản mà tôi thực sự muốn.
Hầu hết các tàu tuần dương có xu hướng thực sự dài, chuỗi liên tục vô nghĩa. Nội dung tôi quan tâm được đảm bảo dưới 16kb, vì vậy tôi sẽ lọc tệp theo độ dài dòng. Đây là tập lệnh Python tôi đang sử dụng để làm như vậy:
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()
Điều này hoạt động, nhưng để tham khảo trong tương lai: Có bất kỳ câu thần chú một dòng ma thuật nào (nghĩ awk
, sed
) sẽ lọc một tệp theo độ dài dòng không?