如何在 shell 脚本中获取文件名的第一个扩展名?

ogs*_*ogs 1 bash shell cut sh

是否有内联命令可用于获取文件的第一个扩展名?

我使用以下命令来获取最新的:

FILE="filename.tar.bz2"
EXT="${FILE##*.}"
echo "EXT = ${EXT}"
Run Code Online (Sandbox Code Playgroud)

返回

EXT = bz2
Run Code Online (Sandbox Code Playgroud)

是否有类似的命令来隔离“tar”?

Kam*_*Cuk 6

var="config/filename.tar.bz2"
ext=$(basename "$var")    # extract filename only
ext=${ext#*.}             # remove everything in front the first dot
ext=${ext%%.*}            # remove everything after a dot
echo "$ext"
Run Code Online (Sandbox Code Playgroud)

注:按照惯例大写变量用于像出口变量COLUMNSLINES UID PWD TERM等等。在你的脚本中使用小写变量体型。