Похожие вопросы

Удалить расширение файла case-insentively in Bash

Я хочу удалить суффикс файла с помощью basename в скрипте Bash.
Однако команда удаляет суффикс только с учетом регистра.

Как удалить расширение без учета регистра?

5
задан slhck
источник

2 ответов

если вы хотите удалить расширение в 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 .* соответствует точке и нулю или более символов, независимо от их регистра.

13
отвечен slhck 2013-08-20 14:33:58
источник

использовать разложения по параметру

file=/home/johndoe/cv.DOC
basename ${file%.[Dd][Oo][Cc]}
3
отвечен choroba 2013-08-20 14:26:31
источник

Другие вопросы bash file-extension