Siduction Forum

Siduction Forum => Scripting & Kernelhacking => Topic started by: khx on 2010/12/24, 14:18:55

Title: [erledigt]Binär-Dateien im Shell-Script aneinanderhänge
Post by: khx on 2010/12/24, 14:18:55
Moin,

wie kann ich im Shell-Script an eine bestehende Binär-Datei
eine/mehrere weitere anhängen?
(ich möchte mehrere .wav-Dateien aneinanderhängen)

ist cat dafür geeignet?

Hermann
Title: Binär-Dateien im Shell-Script aneinanderhängen
Post by: bluelupo on 2010/12/24, 15:33:53
Hi Hermann,
versuch es mal mit folgenden Kommando.
Code: [Select]

$ cat 01.wav 02.wav 03.wav > 01-03.wav
Title: Re: Binär-Dateien im Shell-Script aneinanderhängen
Post by: khx on 2010/12/24, 16:45:44
Quote from: "bluelupo"
Hi Hermann,
versuch es mal mit folgenden Kommando.
Code: [Select]

$ cat 01.wav 02.wav 03.wav > 01-03.wav


hi bluelupo,
danke!

das wäre zusammensetzen - wenn ich das richtig verstanden habe ?
anhängen mit >> geht sicher auch?

Hermann
Title: Re: Binär-Dateien im Shell-Script aneinanderhängen
Post by: bluelupo on 2010/12/24, 17:25:00
@Hermann: Anhängen mit >>
Title: Re: Binär-Dateien im Shell-Script aneinanderhängen
Post by: khx on 2010/12/24, 18:24:15
Hi,
habs probiert
prinzipiell gehts
allerdings knackt es an den Stoßstellen

Hermann
Title: Re: Binär-Dateien im Shell-Script aneinanderhängen
Post by: khx on 2010/12/24, 20:06:58
also ...

erst mit sox ins raw-format konvertieren
dann zusammenhängen
danach das zusammengehängte file mit sox ins wav-format
fertig

allerdings den gibts den in den div. Anleitungen beschrieben Parameter -w nicht
geht aber auch ohne
Hermann
Title: [erledigt]Binär-Dateien im Shell-Script aneinanderhänge
Post by: holgerw on 2010/12/25, 07:53:03
Hallo @Bluelupo,

Audiodateien bitte nicht mit cat aneinanderfügen, das gibt Aussetzer.

@khx, warum wandelst Du denn die Dateien erst ins Raw Format um?

Hast Du drei Dateien 01.wav, 02.wav und 03.wav, lautet der Befehl:
Code: [Select]
sox 0* gesamt.wav

Viele Grüße,
  Holger
Title: [erledigt]Binär-Dateien im Shell-Script aneinanderhänge
Post by: khx on 2010/12/25, 09:30:19
Hallo Holger,

Quote from: "holgerw"
Hallo @Bluelupo,

Audiodateien bitte nicht mit cat aneinanderfügen, das gibt Aussetzer.

liegt das daran, daß cat nicht für Binär-Dateien geeignet ist?
Quote from: "holgerw"


@khx, warum wandelst Du denn die Dateien erst ins Raw Format um?

weils geknackt hat, was ich auf die Header zurückführte
Quote from: "holgerw"


Hast Du drei Dateien 01.wav, 02.wav und 03.wav, lautet der Befehl:
Code: [Select]
sox 0* gesamt.wav

sieht ja sehr einfach aus,
aber, wie kontrolliere ich die Reihenfolge?

Danke
Hermann
Title: [erledigt]Binär-Dateien im Shell-Script aneinanderhänge
Post by: DonKult on 2010/12/25, 14:00:23
Quote from: "khx"
Quote from: "holgerw"
Audiodateien bitte nicht mit cat aneinanderfügen, das gibt Aussetzer.

liegt das daran, daß cat nicht für Binär-Dateien geeignet ist?


Nein, das liegt am wav Format -- das geht einfach nicht davon aus, dass an dessen Ende noch was kommt. Das ist aber bei vielen Binärformaten so, dass die das nicht gut finden. Ist im Grunde aber auch so bei Textdateien: Alleine durch cat werden zwei Sätze halt eben auch nicht zu einem mit "und" verbundenem Langen…

Quote from: "khx"
Quote from: "holgerw"
Hast Du drei Dateien 01.wav, 02.wav und 03.wav, lautet der Befehl:
Code: [Select]
sox 0* gesamt.wav

sieht ja sehr einfach aus,
aber, wie kontrolliere ich die Reihenfolge?

Vertraue auf deine Shell, dass sie richtige Expansion macht ;) Ansonsten kannst du es natürlich explizit aussprechen (sox 001.wav 002.wav …) oder eben:
Code: [Select]
sox $(find /path/to/wavs/ -name '0??.wav' | sort)
Mit find und sort kann man dann wohl wirklich so ziemlich jeden Sortierungswunsch erfüllen…

(find alleine wird eine recht undefinierte Reihenfolge ausgeben -- die Manpages machen schlau :) )