2014-12-08 89 views
1

我結束了很多我的歌曲,以.m4a和.mp3格式。重複的.mp3s與它們對應的.m4as位於相同的文件夾中,我想刪除.mp3s。我正在嘗試編寫一個bash腳本來爲我做這件事,但我對bash腳本編程很陌生,並且不確定我做錯了什麼。這裏是我的代碼:刪除.mp3文件如果.m4a文件具有相同的名稱存在於目錄

#!/bin/bash 
for f in ~/music/artist/album/* ; do 
    if [ -f f.m4a ] && [ -f f.mp3 ] ; then 
     rm f.mp3 
     echo "dup deleted" 
    fi 
done 

我真的很感激它,如果有人可以找出這裏出了什麼問題。謝謝!

+1

'f.m4a' - >' 「$ f.m4a」' – ymonad 2014-12-08 03:35:18

回答

0
#!/bin/bash 
for f in ~/music/artist/album/* ; do 
    f="${f%.*}" # remove extension in simple cases (not tar.gz) 
    if [[ -f ${f}.m4a && -f ${f}.mp3 ]] ; then 
     rm -f "${f}.mp3" && echo "dup deleted" 
    fi 
done 
4
#!/bin/bash 
# No need to loop through unrelated files (*.txt, directories, etc), right? 
for f in ~/music/artist/album/*.m4a; do 
    f="${f%.*}" 
    if [[ -f ${f}.mp3 ]]; then 
     rm -f "${f}.mp3" && echo >&2 "${f}.mp3 deleted" 
    fi 
done 
+0

好吧,我認爲這是工作,但事實並非如此。 .mp3文件仍未被刪除。 – 2014-12-08 20:41:51

+0

@JesseEvers我測試過了,它對我很有用。我擔心,只要你沒有提供任何細節,我什麼都不能說。 – 2014-12-09 06:53:49

+0

據我所知,似乎沒有任何更多的細節提供。我在運行程序時沒有得到任何輸出,並且文件夾中的mp3文件未被刪除。 – 2014-12-09 15:46:34

相關問題