2014-12-08 72 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

相关问题