我正在尝试创建一个脚本,将文件名中所有的 "." 替换为 "_". 例如,当我尝试替换所有的 " " 符号时,我使用以下代码:
rename 'y/ /_/' '{}' file
# test 1.2.jpg -> test_1.2.jpg
使用逗号进行连接运行正常,但是使用"."符号时,扩展名也会发生改变:
rename 'y/./_/' '{}' file
# test 1.2.jpg -> test 1_2_jpg
如何在不改变文件扩展名的情况下重命名文件(如果有的话)?
我正在尝试创建一个脚本,将文件名中所有的 "." 替换为 "_". 例如,当我尝试替换所有的 " " 符号时,我使用以下代码:
rename 'y/ /_/' '{}' file
# test 1.2.jpg -> test_1.2.jpg
使用逗号进行连接运行正常,但是使用"."符号时,扩展名也会发生改变:
rename 'y/./_/' '{}' file
# test 1.2.jpg -> test 1_2_jpg
rename 's/\.(?=[^.]*\.)/_/g' '{}'
或者使用负向先行断言:
rename 's/\.(?![^.]*$)/_/g' '{}'
g
开关,现在已经编辑好了。你可以试试吗? - anubhava.tar.gz
,但我现在可以接受这个。谢谢! - tversteeg重命名 -n 's/ \.(?=.*\.)//g' * : -n 不会执行任何操作。 要实际进行更改,请去掉-n。
file
命令来确定文件的MIME类型,然后通过正则表达式比较该类型和最后一个点之后的字符串。 - tversteeg