如果目录中存在同名的.m4a文件,则删除.mp3文件

时间:2014-12-08 03:32:53

标签: bash mp3 m4a

我最终收录了很多.m4a和.mp3格式的歌曲。重复的.mp3s与其对应的.m4as位于相同的文件夹中,我想删除.mp3s。我正在尝试编写一个bash脚本来为我做这个,但我很擅长于编写脚本并且不确定我做错了什么。这是我的代码:

#!/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

如果有人能弄清楚这里出了什么问题,我真的很感激。谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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