我有一个坏分区的30gb磁盘映像(请考虑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
),将通过过滤线路长度文件?