
Quero remover o sufixo de um arquivo usando basename
um script Bash. O comando remove o sufixo apenas diferenciando maiúsculas de minúsculas.
Como posso remover uma extensão sem distinção entre maiúsculas e minúsculas?
Responder1
Se quiser remover uma extensão do Bash, você pode fazer isso sem ferramentas externas. Depois, passe para basename
:
$ f=/path/to/some/file.foo.bar
$ basename "${f%.*}"
file.foo
Com uma extensão de maiúsculas e minúsculas:
$ f=/path/to/some/file.foo.Bar
$ basename "${f%.*}"
file.foo
Aqui %
estámanipulação de cordas. Ele removerá a substring correspondente mais curta da parte de trás do que está em f
. Corresponde .*
a um ponto e zero ou mais caracteres, independentemente de maiúsculas e minúsculas.
Responder2
Usar expansão de parâmetros
file=/home/johndoe/cv.DOC
basename ${file%.[Dd][Oo][Cc]}