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

如何忽略路径仅按文件名对文件路径数组进行排序?

按文件名反向排序并保留路径的解决方案

要实现保留完整文件路径,仅按文件名(版本号从高到低)排序的需求,你可以通过awk+sort+cut的组合命令完成,具体如下:

基础命令(适用于文件名无空格的场景)

files=($(find -type f -iname 'epo*lnx.zip' | awk -F'/' '{print $NF "\t" $0}' | sort -nr | cut -f2-))

命令分解:

  1. find -type f -iname 'epo*lnx.zip':查找所有匹配文件名模式的文件,输出完整路径
  2. awk -F'/' '{print $NF "\t" $0}':以/为分隔符,提取每个路径的最后一段(即文件名),输出格式为文件名\t完整路径
  3. sort -nr:按第一个字段(文件名)进行反向数值排序,-n确保版本号的数字按大小排序,-r实现从高到低
  4. cut -f2-:移除输出中的第一个字段(文件名),只保留完整路径,最终结果存入数组files

兼容带空格文件名的写法

如果你的文件名可能包含空格,上面的数组赋值方式会出错,建议改用while循环读取:

files=()
while IFS= read -r line; do
    files+=("$line")
done < <(find -type f -iname 'epo*lnx.zip' | awk -F'/' '{print $NF "\t" $0}' | sort -nr | cut -f2-)

验证结果

执行上述命令后,数组files的内容将与你期望的一致:

./Public/epo6900lnx.zip
./Desktop/epo6800lnx.zip
./Downloads/epo6700lnx.zip
./Downloads/epo6600lnx.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:25:18