如上所述,我一直在尝试从 bash 脚本文件中获取不带目录和扩展名的文件名。我希望输出显示为 -> filename : value of 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 但它仍然不起作用。希望有人能提供帮助。非常感谢!
最佳答案
您正在删除扩展名,但没有删除目录前缀。尝试:
END {printf("%s:%4.1f\n", gensub(/.*\/(.*)\.dat$/, "\1", "g"), FILENAME), sum/count);}
\1
获取正则表达式中与 (.*)
匹配的部分,即最后一个 /
和 之间的所有内容.dat
.
关于linux - 从 bash 脚本文件中查找没有目录和扩展名的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35612721/