Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to rename all files in a folder removing everything after space character in linux?

Hello I can't use well the regular expressions it's all day I'm searching on Internet. I have a folder with many pictures:

  • 50912000 Bicchiere.jpg
  • 50913714 Sottobottiglia Bernini.jpg

I'm using Mac OS X, but I can also try on a Ubuntu, I would like to make a script for bash to remove all the characters after the first space to have a solution like this:

  • 50912000.jpg
  • 50913714.jpg

For all the files in the folder. Any help is appreciated. Regards

like image 480
Elio Ermini Avatar asked Feb 14 '23 20:02

Elio Ermini


1 Answers

Use pure BASH:

f='50912000 Bicchiere.jpg'
mv "$f" "${f/ *./.}"

Or using find fix all the files at once:

find . -type f -name "* *" -exec bash -c 'f="$1"; s="${f/_ / }"; mv -- "$f" "${s/ *./.}"' _ '{}' \;
like image 177
anubhava Avatar answered Feb 27 '23 11:02

anubhava