如何将文件名中的_device_activation.csv替换为_attivazioniDevice.csv?
文件批量重命名解决方案
针对你需要把形如20230103143408_device_activation.csv的文件重命名为20230103143408_attivazioniDevice.csv的需求,提供几种实用方法:
方法一:修正mmv命令(适配你的原有工具)
你之前的命令会丢失文件名前缀,正确写法要保留前面的日期部分:
mmv '*_device_activation.csv' '#1_attivazioniDevice.csv'
*匹配文件名中_device_activation.csv之前的所有内容(比如20230103143408)#1引用刚才匹配到的前缀内容,确保重命名后前缀不丢失
方法二:使用Perl版rename命令
大部分Linux发行版默认自带该工具,用正则替换更灵活:
rename 's/_device_activation\.csv$/_attivazioniDevice.csv/' *_device_activation.csv
- 正则
s/旧内容/新内容/实现精准替换,\.转义点号避免误匹配,$锚定文件名结尾,防止修改无关文件
方法三:Bash原生循环(无需额外工具)
用bash自带的参数替换语法,不用装任何工具就能搞定:
for file in *_device_activation.csv; do mv "$file" "${file/_device_activation.csv/_attivazioniDevice.csv}" done
${file/旧字符串/新字符串}是bash内置的字符串替换语法,直接修改文件名指定部分
指定路径下的操作
如果文件不在当前目录,只需把命令中的文件匹配路径替换为完整路径,比如:
# 以mmv为例 mmv '/your/target/path/*_device_activation.csv' '/your/target/path/#1_attivazioniDevice.csv'
或者先切换到目标路径再执行命令:
cd /your/target/path # 再执行上述任意重命名命令
内容的提问来源于stack exchange,提问作者Roberto Vinci
相关产品推荐
相关产品推荐

