I have a little programming experience but am completely new to shell scripting.

I have several hundred mp3s which I want to split using mp3splt with the command

mp3splt -A XXX.txt XXX.mp3

I have run this command by hand in the past but now have a project where doing it by hand would be impractical due to the number of files. In my imagination it should be easy to write a script that searches a folder for all the mp3s that have a txt file of the same name and runs the above command on them.

My question just is this: Is there any obvious reason this would not work? If you (meaning: a person with experience in shell scripting) don´t see any such reason, I´d work my way through this tutorial to work out the rest. If, on the other hand, you say it is impossible, I can just stop and do it by hand.

Thanks in advance!

In case you are interested in my use case: I play irish music, which is based on short melodies played by heart. I want to learn these melodies using anki with audio files. For that, I need to have audio files with just one specific tune each.

  • sin_free_for_00_days@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    2 days ago

    I have no idea how mp3split works, but this might help. If it fails gracefully, you could just do something like

    for mp3file in *mp3; do
        textfile="$(mp3file%.*}.txt"
        mp3split -A "$textfile" "$mp3file"
    done
    

    If it doesn’t fail gracefully, you’ll just have to put a test in there before the mp3split. Something like (this is untested, off the top of my head. May not work, but it should give you an idea):

    for mp3file in *mp3; do
        textfile="$(mp3file%.*}.txt"
        if [ -f "$textfile" ]; then
           mp3split -A "$textfile" "$mp3file"
        fi
    done