[linux] Re: dd vraagje
Daniel von Asmuth
asmuth op bakunin.xs4all.nl
Di Nov 2 17:10:51 CET 2010
Aldus schreef Ulrich Grün op Tue, Nov 02, 2010 at 03:54:45PM +0100:
> Beste lijst,
>
> ik heb een korrupt WMA-bestand (per definitie korrupt, zou je zeggen) waar de
> eerste X kB uit alleen 0-en bestaat. Om dit bestand toch af te kunnen spelen, wil
> ik de eerste 1 MB van een verder identiek WMA-bestand (zelfde instellingen) over
> het korrupte deel heen kopiëren.
Begin met Eur. 666 te doneren aan de corrupte auteur van dit bericht :-)
> Ik ben tot nu als volgt te werk gegaan.
> 1.
> 1te MB van een goed WMA-bestand gekopiëerd via:
> dd if=/Goede_Bestand.WMA of=/1teMB.WMA bs=1000000 count=1
>
> Dit levert mij inderdaad een bestand van 1 MB
>
> 2. Echter: nu moet dit 1te MB over het korrupte deel heengeschreven worden.
> dd if=/1teMB.WMA of=/Bestand_met_korrupte_begin.WMA bs=1000000 count=1
> Levert mij alleen een bestand op ter grootte van 1MB ...
>
> Mijn vraag dus: hoe kan ik een pakketje van 1 MB grootte over het begin van een
> bestand heen plakken?
De eerste suggestie is dat ik denk dat het alleen kan met een eenvoudig
progje te schrijven in C of uw favoriete taal. De Unix shell en tools
hebben namelijk de neiging om de output file eerst te resetten naar
0 bytes alvorens de nieuwe content toe te voegen.
De tweede suggestie: knip het betreffende bestand op met
split -b1000000 Bestand_met_korrupte_begin.WMA
Knip het goede deel uit met
dd if=Goede_Bestand.WMA of=xaa bs=1000000 count=1
En maak het bekeerde bestand aan met
cat x* >Betere_Bestand.WMA
rm -f x*
De tweede suggestie is bijna hetzelfde maar dan zonder de tijdelijke
bestanden:
( dd if=Goede_Bestand.WMA bs=1000000 count=1; dd if=druk.txt bs=Bestand_met_korrupte_begin.WM skip=1 ) >Betere_Bestand.WMA
Grüß Gates,
Daniel
P.S. 1 MB (mebibyte) = 1048576 octets
--
People who bought this story also bought....
More information about the Linux
mailing list