Я хочу удалить суффикс файла с помощью basename
в скрипте Bash.
Однако команда удаляет суффикс только с учетом регистра.
Как удалить расширение без учета регистра?
Я хочу удалить суффикс файла с помощью basename
в скрипте Bash.
Однако команда удаляет суффикс только с учетом регистра.
Как удалить расширение без учета регистра?
если вы хотите удалить расширение в bash, вы можете сделать это без внешних инструментов. Затем передайте его basename
:
$ f=/path/to/some/file.foo.bar
$ basename "${f%.*}"
file.foo
со смешанным расширением:
$ f=/path/to/some/file.foo.Bar
$ basename "${f%.*}"
file.foo
здесь %
is строковые манипуляции. Это удалит самую короткую подстроку из того, что находится в f
. The .*
соответствует точке и нулю или более символов, независимо от их регистра.
использовать разложения по параметру
file=/home/johndoe/cv.DOC
basename ${file%.[Dd][Oo][Cc]}
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]