如上所述,我一直在尝试从bash脚本文件中获取没有其目录和扩展名的文件名。我希望输出显示为 - > filename:sum / count的值。我尝试过使用basename,但它不起作用。
FILE=$(find "$@" -type f -name "*.dat")
for contents in $FILE; do
awk -F "<Overall>" 'NF>=2 {count=count+1;sum=sum+$2; }
END {printf("%s:%4.1f\n",gensub(".dat","","g",FILENAME),sum/count);}' $contents
done| sort -k2rn
代码运行时的输出,给定一个包含我需要检查的所有文件的目录,作为参数:
我将gensub部分更改为basename $ contents但它仍然无法正常工作。希望有人可以提供帮助。非常感谢你!
答案 0 :(得分:1)
您正在删除扩展程序,但是您没有删除目录前缀。尝试:
END {printf("%s:%4.1f\n", gensub(/.*\/(.*)\.dat$/, "\1", "g"), FILENAME), sum/count);}
\1
获取与(.*)
匹配的正则表达式的一部分,这是最后/
和.dat
之间的所有内容。