I've a problem modifying the files' names in my Music/  directory.I have a list of names like these:$ ls01 American Idiot.mp301 Articolo 31 - Domani Smetto.mp301 Bohemian rapsody.mp301 Eye of the Tiger.mp304 Halo.mp304 Indietro.mp304 You Can't Hurry Love.mp305 Beautiful girls.mp316 Apologize.mp316 Christmas Is All Around.mp3Adam's song.mp3A far l'amore comincia tu.mp3All By My Self.MP3Always.mp3Angel.mp3And similar and I would like to cut all the numbers in front of the filenames (not the 3 in the extension).I've tried first to grep only the files with the number with find -exec or xargs but even at this first step I had no success. After being able to grep I'd like doing the actual name change.This is what I tried by now:ls > try-expressiongrep -E '^[0-9]+' try-expressionand with the above I got the right result. Then I tried the next step:ls | xargs -0 grep -E '^[0-9]+'ls | xargs -d '\n' grep -E '^[0-9]+'find . -name '[0-9]+' -exec grep -E '^[0-9]+' {} \;ls | parallel bash -c grep -E '^[0-9]+' - {}And similar but I got error like 'File name too long' or no output at all. I guess the problem is the way I'm using xargs or find as expressions in separate commands work well. Thank you for your help
Remove numbers from filenames
find;xargs;parallel
To list all files start with number in a directory,find . -maxdepth 1 -regextype posix-egrep -regex '.*/[0-9]+.*\.mp3' -type fProblem with your approach is that the find returns a relative path of a file and you are just expecting a filename itself.