Shell-Script
創建 SOX 批處理腳本以提取前 15 秒並重命名文件夾中的多個文件
我有一個包含幾個 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-...
,以將它們分開。