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