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

Linux下如何提取.dcmzzz扩展名前的文件名三位数字串?

批量提取文件名指定部分的方法

针对你需要提取.dcmzzz扩展名前最后三位数字(保留前导零)的需求,以下是几种实用的命令行实现方式:

方法1:Bash原生字符串处理(无需额外工具)

利用Bash的参数展开功能直接处理文件名,适合批量遍历文件:

# 遍历当前目录下所有.dcmzzz文件
for file in *.dcmzzz; do
    # 先去掉.dcmzzz后缀
    suffixless=${file%.dcmzzz}
    # 提取后缀less部分的最后三位字符
    echo "${suffixless: -3}"
done

执行后会直接输出每个文件对应的目标字符串(如028、240)。

方法2:Sed正则匹配

用Sed的正则表达式捕获目标部分,适合管道批量处理:

# 输出所有.dcmzzz文件的目标字符串
ls *.dcmzzz | sed -E 's/.*([0-9]{3})\.dcmzzz/\1/'

原理:正则.*([0-9]{3})\.dcmzzz会匹配文件名末尾的三个数字+.dcmzzz,并将这三个数字作为捕获组替换输出。

方法3:Awk字符串截取

借助Awk的字符串分割与截取功能实现:

# 输出所有.dcmzzz文件的目标字符串
ls *.dcmzzz | awk -F'.' '{print substr($1, length($1)-2, 3)}'

原理:用.分割文件名,取分割后的第一部分(即去掉后缀的部分),再从该部分的倒数第3个字符开始截取3个字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:32:44