pythonlinuxbashconsolebatch-rename

bach linux file rename - how to rename multiple files in linux console


I would like to rename cca 1000 files that are named like: 66-123123.jpg -> abc-123123-66.jpg. So in general file format is: xx-yyyyyy.jpg -> abc-yyyyyy-xx.jpg, where xx and yyyyyy are numbers, abc is string. Can someone help me with bash or py script?


Solution

  • Try doing this :

    rename 's/(\d{2})-(\d{6})\.jpg/abc-$2-$1.jpg/' *.jpg
    

    warning There are other tools with the same name which may or may not be able to do this, so be careful.

    If you run the following command (linux)

    $ file $(readlink -f $(type -p rename))
    

    and you have a result like

    .../rename: Perl script, ASCII text executable
    

    then this seems to be the right tool =)

    If not, to make it the default (usually already the case) on Debian and derivative like Ubuntu :

    $ sudo update-alternatives --set rename /path/to/rename
    

    (replace /path/to/rename to the path of your perl's rename command.


    If you don't have this command, search your package manager to install it or do it manually.


    Last but not least, this tool was originally written by Larry Wall, the Perl's dad.