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

如何通过分割tgz文件名批量生成指定格式目录?

批量处理.tgz文件并按转换后的姓名创建目录

当然可以用bash的for循环批量完成,无需逐个操作,具体步骤和脚本如下:

完整批量处理命令

for filename in *.tgz; do
    # 从文件名中提取姓名部分
    name_part=$(echo "$filename" | sed -E 's/^Huistaak1-HelloWorld_(.*)\.s\.ua_poging_.*/\1/')
    # 将「名字.姓氏」分割为独立部分(以第一个点为界,兼容带中间名的姓氏)
    first_name=${name_part%%.*}
    last_name=${name_part#*.}
    # 生成「姓氏.名字」格式的目录名
    target_dir="${last_name}.${first_name}"
    # 创建目录(-p 参数避免目录已存在时抛出错误)
    mkdir -p "$target_dir"
done

各部分说明

  • 提取姓名:通过sed正则匹配,精准捕获文件名中Huistaak1-HelloWorld_之后、.s.ua_poging之前的内容,比如从Huistaak1-HelloWorld_Jonas.De.Preter.s.ua_poging_2019-11-12.tgz中提取出Jonas.De.Preter。
  • 分割转换格式:
    • ${name_part%%.*}:截取第一个点之前的内容作为名字(如Jonas);
    • ${name_part#*.}:截取第一个点之后的所有内容作为姓氏(如De.Preter);
    • 拼接成姓氏.名字的目录名(如De.Preter.Jonas)。
  • 创建目录:mkdir -p确保目录能被成功创建,即使目录已存在也不会报错,避免中断批量处理流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:50:39