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

sh脚本使用ls+grep传文件给epk2extract时最后一个文件报不存在错误求助

问题原因

解析ls输出的写法不符合shell脚本的最佳实践,ls的输出是面向人类阅读的,没有标准化的解析格式,遇到文件名带空格、换行、特殊符号时会出现拆分错误。最后一个文件找不到的问题,大概率是ls输出的末尾换行符被带入变量,或者文件名包含特殊字符时拆分出错,导致最后一次循环的$file变量值和实际文件名不匹配。

修复方案

优先使用原生通配符匹配,不需要额外调用ls和grep,兼容性和稳定性最好:

# 开启nullglob配置,无匹配文件时不会把*STR*当成普通文件名处理
shopt -s nullglob
# 遍历当前目录所有文件名包含STR的文件
for file in *STR*; do
    ./epk2extract "$file" -a 0x1C -v 0x1B
done

如果需要更复杂的匹配规则,也可以用find实现:

# 仅查找当前目录(不递归子目录)下文件名包含STR的普通文件,直接传递给程序处理
find . -maxdepth 1 -type f -name "*STR*" -exec ./epk2extract {} -a 0x1C -v 0x1B \;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:06:01