You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unix中如何利用文件名首连字符前内容批量重命名文件

批量重命名CSV文件的Unix实操方案

方法1:用Perl版rename命令(便捷首选)

大部分Linux发行版默认预装这个版本的rename,一行命令搞定:

rename 's/^([^-]+)-.*\.csv$/$1.csv/' *.csv

命令拆解:

  • s/旧匹配规则/新命名规则/:Perl的字符串替换语法
  • ^([^-]+):精准捕获文件名开头到第一个-之前的所有字符(这部分会被保存为分组$1)
  • -.*\.csv$:匹配第一个-到.csv结尾的全部冗余内容
  • $1.csv:用捕获的核心文件名加上.csv后缀作为新名称

方法2:原生Bash循环(全兼容方案)

如果你的系统没有Perl版rename,用原生Bash循环也能实现,适配所有Unix-like系统:

for file in *.csv; do
  new_name="${file%%-*}.csv"
  mv "$file" "$new_name"
done

命令拆解:

  • ${file%%-*}:Bash参数扩展语法,从文件名末尾开始删除最长的-*匹配段,最终保留第一个-之前的内容
  • mv "$file" "$new_name":执行实际的重命名操作

安全提示

  • 先把mv换成echo运行,预览生成的新文件名,确认无误后再执行重命名
  • 如果文件夹里有不符合格式的CSV文件,可先通过ls | grep '^.*-.*\.csv$'筛选出目标文件,再执行重命名

内容的提问来源于stack exchange,提问作者Sumit Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:35:19