[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