Shell-Script

創建 SOX 批處理腳本以提取前 15 秒並重命名文件夾中的多個文件

  • May 15, 2015

我有一個包含幾個 MP3 文件的文件夾,我需要從中提取 10-15 秒的音頻。我還想通過將 sample-(name).mp3 附加到轉換後的文件來重命名這些文件。

如何通過 Shell 腳本做到這一點?

如果你想/需要使用sox它,你可以使用它的trim命令:

for i in *.mp3
do 
 sox "$i" sample-"$i" trim 0 10
done

您也可以使用作為mp3splt一部分的命令行實用程序進行拆分。您使用 明確設置輸出文件-o,因此不會觸及原件,只需在完成後將其刪除。這允許您將文件中定義的標籤合併到輸出名稱sox中(您現在似乎不需要):

for i in *.mp3
do 
 mp3splt "$i" 00.00.00 00.10.00 -o sample-"${i%.mp3}"
done

請注意,-o通常與@基於指令一起使用以在輸出名稱中包含標記元素並附加.mp3. 沒有${i%.mp3}你會得到.mp3.mp3文件。

時間是點分隔的,不要嘗試使用:,你會得到一個不太有用的錯誤消息,你沒有足夠的分割點。

在您測試腳本是否有效之前,我不會刪除輸入文件。另請注意,如果您中途停止它,或稍後添加文件,則如果不先刪除任何文件,您將無法重新執行它sample-。您可能希望在 之前指定一個目錄sample-...,以將它們分開。

引用自:https://unix.stackexchange.com/questions/203535