我有一堆图像,比如1.jpg 2.PNG 3.gif 4.jpeg
目录中的图像。我想将它们全部重命名为1-s.jpg 2-s.PNG 3-s.gif 4-s.jpeg
。
我尝试运行这些命令,但它对目录中的文件没有影响:
rename 's/^(\d+)\.(.*)/$1-s.$2/' .
rename 's/^(\d+)\.(.+)/$1-s.$2/' .
rename 's/.*\.(.+)/$1-s.$2/' .
我做错了什么?
答案1
使用通配符*
作为文件名:
rename 's/^(\d+)\.(.*)/$1-s.$2/' *
你可以简化一点:
rename 's/^(\d+)(?=\.)/$1-s/' *
其中,(?=\.)
正向前瞻确保数字后面有一个点,但不捕获它。