我正在使用 xld 撰寫用于批處理音頻檔案的腳本。我想找到未拆分的專輯,將它們拆分并在 flac 中轉換它們,并帶有適當的標簽。
find . -name "*.ape" -exec sh -c 'exec xld "$1" -f flac' _ {} \;
此命令列正在將音頻轉換為 flac,但我必須在 xld 中添加“-c filename.cue”選項以使其拆分檔案。
找 。-name "*.ape" -exec sh -c 'exec echo $1 | sed 's/.ape/.cue/'' _ {} ;
這個命令列顯示了 .cue 檔案的路徑
找 。-name "*.ape" -exec sh -c 'exec xld "$1" -f flac -c $1 | sed 's/.ape/.cue/'' _ {} ;
這個命令列不起作用,xld 說他沒有找到 de cue 檔案。我認為這只是一個語法問題。
感謝您的幫助
uj5u.com熱心網友回復:
我不像往常那樣在計算機上進行測驗,但是bash您可以像這樣替換變數的尾隨部分:
thing="fred.ape"
echo ${thing/%.ape/.cue}
fred.cue
它稱為“引數替換/擴展”,并在此處通過示例進行解釋。
因此,基于此,您需要執行bash這樣的操作(未測驗):
find . -name "*.ape" -exec bash -c "xld "$1" -f flac -c "${1/%.ape/.cue}"' _ {} \;
就個人而言,我會像這樣與GNU Parallel 并行執行它們:
parallel xld {} -f flac -c {.}.cue ::: *.ape
您可以使用自制軟體安裝它:
brew install parallel
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/352122.html
下一篇:將多個變數添加到關聯陣列
