Se você quiser remover uma extensão no Bash, poderá fazer isso sem ferramentas externas. Em seguida, passe para basename
:
$ f=/path/to/some/file.foo.bar
$ basename "${f%.*}"
file.foo
Com uma extensão de casos mistos:
$ f=/path/to/some/file.foo.Bar
$ basename "${f%.*}"
file.foo
Aqui, %
é manipulação de string . Ele removerá a substring de correspondência mais curta da parte de trás do que está em f
. O .*
corresponde a um ponto e zero ou mais caracteres, independentemente do caso.