← Back to team overview

sslug-teknik team mailing list archive

Re: grep: memory exhausted

 

donald_j_axel wrote:

On Fri, 10 Dec 2004 15:01:37 +0100
Lars wrote:

Jeg har et lille problem. Jeg skal hente nogle tekst-data fra en hardisk (ext3). Så jeg skriver følgende fra systemrescuecd på en mountet share :

grep -a -B2 -A4 "søgetekst" /dev/hda1 > gem_output

Jeg har ligeledes prøvet :

dd if=/dev/sda3 bs=1048576 count=500 | grep -a -B2 -A4 "søgetekst" /dev/hda1 > gem_output

Efter et stykke tid får jeg så "grep: memory exhausted" på begge kommandoer. Det er jo temmelig klart hvad der sker her. Jeg har 190 MB til rådighed. Er der monstro nogle bud på hvordan jeg undgår at løbe tør for hukommelse ?

Har det ikke snarere noget at gøre med, at grep forventer linier. D.v.s. at -a optionen bevirker, at den faktisk står og fylder en liniebuffer,
først for at have styr på linier før (p.g.a. -B2 optionen) og derefter
endda flere linier (til -A 4.)

Jeg har da tit tænkt på, hvordan jeg ville gøre sådan noget, og er
endt med ikke at bruge grep - indtil jeg får genskrevet min gamle
tekst-manipulator som er ligeglad med linieskift.

Enten bruger jeg
# cat /dev/hda1 | strings | grep interessant_text
Hov, det ser ud af noget godt. 'grep' kan også bruge -B og -A argumenterne.

Men andet kan jeg ikke komme i tanke om lige nu (jeg bruger det
som regel kun på floppy-størrelse partitioner, det er derfor jeg
er forsigtig med at udråbe det til en generel metode. Jeg har
vist en gang dumpet en 100MB partition med Hexdump -C til en
fil og så kigget på den. Hexdump skipper linier med 00'er)
Det er kun en 40 GB disk jeg vil trawle igennem. Nå, jeg kan ligeså godt fortælle hvad der er sket. I mozilla ville jeg prøve at lave en backup af en folder med mails til min IMAP konto. Smart ikke. Det var jo kun en prøve. Som skrevet så gjort. Da det så var prøvet, slettede jeg igen IMAP folderen. Fint. Indtil jeg gik tilbage i mozilla og opdagede det ikke var en kopi jeg havde foretaget, men en flytning. Argh. Nå, backupen var en uge gammel, så det er de manglende mails jeg forsøger at fiske frem.

Lars Brandi Jensen


References