[Debian] De eerste zoveel bytes van een file afhalen

Pagina: 1
Acties:

  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
Haloa,

Ik heb een 10 gig grote file, waarvan ik de eerste 2,8 gig af wil halen. Ik weet tot op de byte waar ik de grens wil hebben, ook weet ik het patroon van het begin van het gedeelte wat ik wil behouden. Het gaat om Debian op een ext3 filesystem.

Hoe krijg ik dit voor elkaar?

Bedankt!

  • Foeijonghaai
  • Registratie: Juli 2001
  • Laatst online: 11:15
split -b<bytecount> etc.

dat zorgt ervoor dat je bestand wordt gesplitst in bestand.aa, bestand.bb allen met de grote <bytecount>, behalve de laatste.

Als je split gebruikt, moet je dus wel de rest van de bestanden die je niet nodig hebt, weggooien. Dit betekent ook dat je wel ruimte vrij moet hebben met de grootte van je bestand.

[ Voor 4% gewijzigd door Foeijonghaai op 13-10-2005 23:50 . Reden: spelfout ]


  • engelbertus
  • Registratie: April 2005
  • Laatst online: 08-02 21:49
kun je niet met linux en split en nog wat de laatste opgesplitste delen laten opslaan in /dev/null ?
dat scheelt alweer opslagruimte die je nodig hebt
en misschien kan je dmv dd de eerste zoveel bytes van een bestand naar een ander bestand kopieren. ik weet alleen niet of dat mogelijk is, misschien kijkt dd niet naar bestanden, maar gewoon naar opeenvolgende bytes op de hd bitwise dus ipv filewise.

mischien kun je met grep of zo aan de gang
neem dit en sla op neem volgend regel en voeg toe indien..etc. tot je aankomt waar je moet zijn. en dn stoppen.
www.nedlinux.nl er is daar een forum, waar mensen je vast nog wel een aantal andere handige linux tooltjes kunnen adviseren.

  • Foeijonghaai
  • Registratie: Juli 2001
  • Laatst online: 11:15
als het een binair bestand is, wordt het lastig met grep denk ik.

Als het een tekst-bestand is, zou je met sed regels kunnen droppen vanaf een bepaald regelnummer.

met split de laatste delen weggooien is niet mogelijk dacht ik. Split neemt een invoer bestand en deelt het op naar bestand.aa, bestand.ab etc. Het enige wat je zelf kan bepalen is de extensie voor het uitvoerbestand. Het is dus niet mogelijk de rest naar /dev/null te sturen, want het werkt niet met stdin en stdout etc.

Misschien een mogelijkheid, maar dat zou je moeten testen, is dat je fifo's aanmaakt met de bestandsnamen van de delen die je wil droppen. Voordat je dan split gebruikt, doe je cat fifoname > /dev/null & en dan split gebruiken. Misschien dat ie dan de fifo pakt. Maar het kan ook zijn dat ie het bestaande bestand (de fifo) verwijderd en dan een nieuw bestand aanmaakt voor zijn uitvoer.

  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

De programma's 'head' en 'tail' hebben byte arguments (--bytes=N). Tevens kun je bij 'tail' met de '+' switch (-bytes=+N) aangeven dat je N-1 bytes aan het begin wilt overslaan ipv de laatste N bytes printen ('head' gebruikt de '-' switch).

Verder kan je natuurlijk ook het programma 'dd' gebruiken om blokken uit het bestand te halen.

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • Rempage0611
  • Registratie: December 2000
  • Laatst online: 23-09-2025

Rempage0611

9405 WP @ 2x SMA Sunny Boy

Topicstarter
Split werkte perfect, bedankt!

  • BoAC
  • Registratie: Februari 2003
  • Laatst online: 09-02 20:36

BoAC

Memento mori

/laat:
Met dd had et ook nog gekunt :P

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 08-02 21:49
zoiets gaf ik ook al aan met dd
dd gebruik ik alleen om de bootsector ed te kopieren nar een bestand. dan pak ik de eerste 512 van de partitie
dd if=/dev/hda3 of=/tmp/boot.lnx bs=512 count=1
vandaar dat ik niet weet of dd nu "bitwise" of filewise bytes kopieert ;-)
ik gebruik dan ook de windows botloader, omdat die t halstarrigst is met instaleren, en zo dus nooit lilo de nek wordt omgedraaid, wat opstarten met bootdisks en lilo repareren voorkomt.
opstarten met de window cd en fixmbr is dat makkelijer. maar dat heft ook nooit, omdat windows dt bij een installatie meestal wel gewoon zelf goed doet.
alleen ff de regel voor mijn linux nog weer ff aan bot.ini toevoegen, en klaar
Pagina: 1