我知道如何删除文件的扩展名,如下所示:
nameis=$(basename $dataset .csv)
但是我想在事先不知道的情况下删除任何扩展,有人知道怎么做吗?
感谢你的帮助,泰德
发布于 2011-03-20 05:48:07
您可以使用sed
删除最后一个点后面的所有内容
nameis=$(echo $filename | sed 's/\.[^.]*$//')
但这不适用于具有双扩展名的文件,如.tar.gz
。
发布于 2012-08-05 07:27:03
nameis=${dataset%%.*}假定您的基名中没有点。这将从左边返回可能最长的无点字符串。
发布于 2011-03-20 05:49:56
我建议使用sed
命令来代替basename
,如下所示:
echo "$fileName" | sed 's/\..*$//g'
https://stackoverflow.com/questions/5365090
复制相似问题