Re: grep [kein OT]
Also sprach Gerhard Wolfstieg <gw@wolfstieg.com> (Thu, 19 Jan 2006
20:51:54 +0100):
> On Thu, 19 Jan 2006 20:17:33 +0100
> Richard Mittendorfer <delist@gmx.net> wrote:
>
> > Vermutlich weil /dev/sda ein Blockdevice ist und kein
> > File/printbarer String. Was bezweckst du damit? Hoffst du ein
> > geloeschtes file zu finden? Hilft vielleicht lde; "man lde"?
>
> Hallo Rich,
Hi,
> scharf und richtig geschlossen. Das [OT] war vorschnell. Ich bin
> nämlich dabei, aus dem Paket lde das Script "lde-grep-inode"
> auseinanderzunehmen, weil das offensichtlich nicht tut und bisher
> hatte ich den Fehler bei mir vermutet. Bei lde selbst blicke ich
> einigermaßen voll durch.
Das kann ich leider nicht behaupten. Schon einige Jahre her, dass ich's
verwendet hab - seither spiel ich in solch einem Fall schlicht das
Backup wieder ein. ;)
> In dem Script gibt es den Zeilenanfang
> grep -b ${GREP_OPT} | ...
> wobei ${GREP_OPT} gleichbedeutend ist mit "Suchwort /dev/sdb6". Das
> habe ich überprüft durch ein vorangestelltes
> echo ${GREP_OPT}
>
> grep scheint mit /dev/sdb6 umgehen zu können, weil erstens die
> korrekte Ausgabe kommt, daß das Suchwort existiert und zweitens meine
> Vermutung dahingeht, daß das Script irgendwann mal getan haben muß bei
> Blockdevices -- und ohne weitere Testerei einfach in lde.deb geblieben
> ist.
Nach einem Blick in die manpage sehe ich lediglich ext2, minix, xiafs
und fat als supported. Was ist dein FS?
> Gruß, Gerhard
sl ritch
>
> Das Script ist kurz genug, um es hier mitzuliefern. Die unten
> kommentierte Sache mit awk scheint zu funktionieren. Daß so was auf
> (dazu noch negativen) Verdacht drinbleibt, ist m. E. ein dicker Hund.
>
> #!/bin/sh
> #
> # This will grep a partition for a string, then pass the output to lde
> # to hopefully produce and intact inode which can be used to recover
> # the file.
> #
> # USAGE: grep-inode [grep options] search_string device
> #
> # Might want to specify --all if the data was really important, but
> # if you've caught it early, it won't be necessary.
> LDE_OPT=
> GREP_OPT=$*
> while [ "$*" != "" ] ; do
> DEVICE=$*
> shift 1
> done
> # If you don't have awk, remove it from the command pipeline below.
> # I don't think it was doing what I wanted it to anyways.
> grep -b ${GREP_OPT} | awk '{FS = ":" } ; { print $1 }' | lde
^^^^^^^^^ auch dieses Script scheint
funktionieren der -b Option von grep zu erwarten.
> ${LDE_OPT} --grep ${DEVICE}
Reply to: