jon_gunnar Skrevet 28. juni 2011 Del Skrevet 28. juni 2011 Jeg har en masse m4b filer som jeg gjerne skulle fått konvertert til mp3. Fant noe på nettet som greit kunne bruke for en og en fil. Med ved forsøk på batch konvertere ser det ut som filnavnene gir problemer. De fleste har navn som dette: Dette kan være fil nunner 1.m4b Har lagd en fil som inneholder #!/bin/bash for m4b in $(ls -1 *.m4b); do ffmpeg -i $m4b -acodec libmp3lame -ar 22050 ${m4b}.mp3; done Så, noen med en ide om hvordan jeg får dette til å akseptere filnavn med spaces og lignende i? Takker for alle tips. Lenke til kommentar
tingo Skrevet 28. juni 2011 Del Skrevet 28. juni 2011 (endret) For å håndtere mellomrom så må du bruke apostrofer eller doble apostrofer rundt filnavnene, omtrent slik: ...ffmpeg -i "${m4b}" -acodec ... I tillegg bør du sjekke opp koden din, slik den er nå så vil resultatfilnavnene kunne bli "filnavn1.m4b.mp3" Det er jo ikke sikkert at det er det du ønsker. Jeg bruker ofte echo-kommandoen når jeg tester shell-script, da ser jeg hva scriptet gjør, uten å ødelegge noe. Endret 28. juni 2011 av tingo Lenke til kommentar
AlecTBM Skrevet 28. juni 2011 Del Skrevet 28. juni 2011 Klarer ikke å se hvorfor du har valgt å bruke { på output, men så lenge du har " rundt variablene (i dette tilfellet, "$m4b") så skal det funke. Men ang konvertering til mp3, du vil jo miste de store fordelene til m4b når du gjør det om til mp3. Lenke til kommentar
Sokkalf™ Skrevet 29. juni 2011 Del Skrevet 29. juni 2011 @AlecTBM, {} rundt variabelnavn gir en mer presis indikasjon på at det er snakk om en variabel, så f.eks ${fil}.mp3 oppfattes som en variabel fil + .mp3, og ikke en variabel som heter fil.mp3. @trådstarter, for å slippe å få filer som heter "filnavn.m4b.mp3", kan du "klippe bort" m4b fra filnavnet, og legge til mp3 isteden slik: ${filnavn%.m4b}.mp3 Lenke til kommentar
AlecTBM Skrevet 29. juni 2011 Del Skrevet 29. juni 2011 Sokkalf, er vell kun for leseligheten da, for i bash så fungerer det ihvertfall å bruke $var.mp3 Lenke til kommentar
jon_gunnar Skrevet 29. juni 2011 Forfatter Del Skrevet 29. juni 2011 @AlecTBM, {} rundt variabelnavn gir en mer presis indikasjon på at det er snakk om en variabel, så f.eks ${fil}.mp3 oppfattes som en variabel fil + .mp3, og ikke en variabel som heter fil.mp3. @trådstarter, for å slippe å få filer som heter "filnavn.m4b.mp3", kan du "klippe bort" m4b fra filnavnet, og legge til mp3 isteden slik: ${filnavn%.m4b}.mp3 @tingo og @Sokkalf: Mage takk for tips her. Det løste seg greit når jeg lot det kjøre rename "s/ *//g" *.m4b først for å fjerne tomrom. @AlecTBM: Spilleren min støtter ikke m4b og jeg foretrekker uansett mp3. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå