Я хочу удалить суффикс файла, используя 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
Здесь %
- это манипуляции со строками. Это удалит самую короткую подходящую подстроку из конца того, что находится в f
. .*
Соответствует точке и нулю или более символов, независимо от их регистра.
Используйте расширение параметра
file=/home/johndoe/cv.DOC
basename ${file%.[Dd][Oo][Cc]}