Мне нужно базовое имя файла, которое передается в качестве аргумента скрипту bash. Базовое имя должно быть лишено расширения файла. Предположим, что $1 = "/somefolder/andanotherfolder/myfile.txt"
, желаемый результат будет "myfile"
.
Текущая попытка создает промежуточную переменную, которой я хотел бы избежать:
BASE=$(basename "$1")
NOEXT="${BASE%.*}"
Моя попытка сделать это однострочным будет заключаться в передаче вывода basename. Однако я не знаю, как передать стандартный вывод для замены строки.
РЕДАКТИРОВАТЬ: это должно работать для нескольких расширений файлов с возможной разной длиной, поэтому попытка замены строки, как указано выше.
man basename
. - person Cyrus   schedule 01.07.2020.txt
. Из кода, предоставленного OP, в частности, из расчетаNOEXT
, я бы предположил, что расширение может быть любым. - person user1934428   schedule 01.07.2020