dd if=/dev/sda1 of=diskimage
テキストファイルを復元する必要がある、破損したパーティションの30 GBのディスクイメージがあります(考えてみてください)。データカービングツール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()
これは機能しますが、将来の参考のために:行の長さでファイルをフィルタリングする魔法のような1行の呪文(考えるawk
、sed
)がありますか?