Miten saisin isosta tekstitiedostosta pienemmän pätkän sen sisältä?
Tiedän, että pätkä alkaa rivillä missä lukee "XXXX" ja päättyy riviin missä lukee "YYYY"
Tiedoston koko on noin 800Mt ja pätkän koko on noin 200Mt. Teksti on utf-8.
Yksikään tekstieditori ei pysty avaamaan tiedostoa liian iso tai kone on liian hidas).
Tiedän, että pätkä alkaa rivillä missä lukee "XXXX" ja päättyy riviin missä lukee "YYYY"
Tiedoston koko on noin 800Mt ja pätkän koko on noin 200Mt. Teksti on utf-8.
Yksikään tekstieditori ei pysty avaamaan tiedostoa liian iso tai kone on liian hidas).
Vastaukset 4
Vanhimmat
man split
Voi tuon toki toteuttaa monella muullakin tavoin.
"Yksikään tekstieditori ei pysty avaamaan tiedostoa liian iso tai kone on liian hidas)."
Tuo on kyllä aika yllättävää.
Sopiiko vielä kysyä että mitä moinen mammutti mahtaa käsitellä?
Ihan arvauksena vois vetää, että sieltä löytyy jonkun debuggi-tilassa olevan softan yli-innokkaasti täytetty loki? Tuommosen 800M loki ei ole testauksen alla olevasta kikkareesta mitenkään mahdoton tapaus.
#!/bin/bash
ALKAA='Ensimmäinen rivi'
PAATTYY='Viimeinen rivi'
startline=$(grep "$ALKAA*" -b -o $1 | awk -F: '{print $1}')
endline=$(grep "$PAATTYY" -b -o $1 | awk -F: '{print $1}')
copybytes=$(echo "$endline-$startline" | bc -l)
dd if=$1 bs=1c count=$copybytes skip=$startline