如何在Linux中去除文件扩展名并提取文件名数值计算平均值
Linux下批量处理文件名及计算数值平均值操作指南
批量去除.txt扩展名
提供两种兼容不同环境的实现方式:
- Debian/Ubuntu系系统可直接使用
rename命令:rename 's/\.txt$//' *.txt
命令通过正则匹配文件名末尾的.txt后缀,将其替换为空完成批量重命名。 - 全发行版兼容的Shell循环实现:
for f in *.txt; do mv -- "$f" "${f%.txt}"; done
其中${f%.txt}是Shell原生的参数扩展语法,可直接移除变量末尾匹配的.txt后缀,无需依赖额外工具。
提取文件名数值计算平均值
无需先完成重命名,可直接对原文件批量处理获取结果:ls *.txt | awk -F '.' '{sum += $1; count++} END {printf "平均值为:%.2f\n", sum/count}'
命令说明:
- 先通过
ls *.txt匹配所有目标文件 awk以.为分隔符拆分文件名,第一列即为文件名中的数值部分- 累加所有数值并统计文件数量,最终输出保留两位小数的平均值
如果已经完成重命名操作,使用以下命令即可:ls | grep -E '^[0-9]+$' | awk '{sum += $1; count++} END {printf "平均值为:%.2f\n", sum/count}'
增加grep过滤是为了避免目录内其他非数字命名的文件干扰计算结果。
内容的提问来源于stack exchange,提问作者Mosrour Tafadar
相关产品推荐
相关产品推荐

