sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #78647
Re: grep: memory exhausted
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
# echo "eller hvis det ikke er nok "
# cat /dev/hda1 | hexdump -C | grep "lidt_text"
# echo "idet problemet med den sidste er, at man ikke kan være
sikker på om éns tekst er delt op i småbidder p.g.a.a.
hexdump skifter linie for hver 16 bytes."
exit
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)
--
donald_j_axel donax snabela get2net.dk -- http://d-axel.dk/
Follow ups
References