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

Bash实现文件名模式自动识别并提取前缀至列表

用Bash批量提取文件名前缀并去重生成数组

假设你有一堆格式为前缀_xxx_chicont_rep1.png的图片文件,要提取每个文件名里第一个下划线之前的前缀,去重后存到Bash数组里,直接用下面的命令就能搞定:

方法一:生成标准Bash数组

# 遍历当前目录下的所有png文件,提取前缀、去重后存入数组
patterns=($(for file in *.png; do echo "${file%%_*}"; done | sort -u))

# 查看结果
echo "${patterns[@]}"

方法二:生成指定的逗号分隔格式数组

如果想要生成patterns=('229e3CLpro','Hcov3CLpro', 'mers3CLpro','peds3CLpro','sars3CLpro')这种格式,用下面的命令:

# 提取前缀、去重后拼接成逗号分隔的字符串
pattern_list=$(for file in *.png; do echo "${file%%_*}"; done | sort -u | paste -sd "','" -)

# 组合成目标数组格式
echo "patterns=('${pattern_list}')"

命令说明

  • ${file%%_*}:Bash参数扩展语法,从文件名末尾删除第一个下划线及之后的所有内容,仅保留前缀部分。
  • sort -u:对提取出的所有前缀排序,同时自动去除重复项。
  • paste -sd "','" -:把每行的前缀用','连接起来,适配你需要的数组格式。

运行后就能得到去重后的前缀数组,完全匹配需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:57:21