Change the name of many files

孤街醉人 提交于 2019-12-12 01:57:16

问题


How can I rename many files. Remove the digits at the beginning. I have a Mac. All the files are in the same folder.

The pattern is:
1, 2 or 3 digits - any name.php
With Regular Expression, I think it would be:
\d*-(.*).php

For example:
1-marketing.php
2-3D.php
3-without.php

I want to remove the numbers and the dash at the beginning.

In the example it would be:
marketing.php
3D.php
without.php

What I have explored two ways:
Select the files > ctrl click > rename items. This is a fantastic method to change the name of files. But I think it cannot be used in this case. If I understand, it does not support Regex. Am I right?

Terminal. I am not very familiar with terminal. I tried mv 1-marketing.php marketing.php It works for 1 file, but how can I do the same for many? I am new with the terminal. If it can be done, please explain the basic.


回答1:


Open the terminal app in Mac OS X and navigate to the folder containing the .php files

cd /my/path/to-php-files/

and run the below command on the command-line.

for file in *.php; do mv -v "$file" "${file#*-}"; done

The bash parameter expansion syntax ${file#*-} removes the characters before - from the beginning, so ideally 3-number-without.php becomes number-without.php

(or) use the perl rename utility not available by default in Mac OS, you can download and install it with homebrew 🍺:

brew install rename

and do

rename -n 's/^(\d+)-(.*)/$2/' *.php

The -n is just for a dry-run to see how the files are to be renamed, remove it as

rename 's/^(\d+)-(.*)/$2/' *.php

for the actual renaming.



来源:https://stackoverflow.com/questions/41778845/change-the-name-of-many-files

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!