[erledigt]Binär-Dateien im Shell-Script aneinanderhänge

Started by khx, 2010/12/24, 14:18:55

Previous topic - Next topic

khx

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

bluelupo

Hi Hermann,
versuch es mal mit folgenden Kommando.

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

khx

Quote from: "bluelupo"Hi Hermann,
versuch es mal mit folgenden Kommando.

$ 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

bluelupo


khx

Hi,
habs probiert
prinzipiell gehts
allerdings knackt es an den Stoßstellen

Hermann

khx

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

holgerw

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:
sox 0* gesamt.wav

Viele Grüße,
 Holger

khx

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:
sox 0* gesamt.wav
sieht ja sehr einfach aus,
aber, wie kontrolliere ich die Reihenfolge?

Danke
Hermann

DonKult

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:
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:
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 :) )