从bash脚本文件中查找没有目录和扩展名的文件名

时间:2016-02-24 20:45:59

标签: linux bash awk

如上所述,我一直在尝试从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

代码运行时的输出,给定一个包含我需要检查的所有文件的目录,作为参数:

this is the output

我将gensub部分更改为basename $ contents但它仍然无法正常工作。希望有人可以提供帮助。非常感谢你!

1 个答案:

答案 0 :(得分:1)

您正在删除扩展程序,但是您没有删除目录前缀。尝试:

END {printf("%s:%4.1f\n", gensub(/.*\/(.*)\.dat$/, "\1", "g"), FILENAME), sum/count);}

\1获取与(.*)匹配的正则表达式的一部分,这是最后/.dat之间的所有内容。