In un ciclo come questo:Nome file senza estensione in bash per il ciclo
for f in `ls *.avi`; do echo $f; ffmpeg -i $f $f.mp3; done
$ f sarà il nome del file completo, compresa l'estensione. Ad esempio, per song1.avi l'output del comando sarà song1.avi.mp3. C'è un modo per ottenere solo song1, senza il .avi dal ciclo for?
Immagino che ci siano modi per farlo usando awk o altri strumenti simili, ma spero che ci sia qualcosa di più semplice.
Grazie
Per inciso, si vuole perdere l'inutile Uso di backtick. La sintassi corretta e idiomatica è 'for f in * .avi; do ... ' – tripleee
Per non parlare - se hai spazi nei nomi dei file (anche se questa è una pratica malvagia), in realtà dovresti andare come' ls * avi | mentre leggi f; fare (...); done'. E poi cita '" $ f "' ovunque. Sto solo dicendo –