Модификация базового имени Bash - PullRequest
0 голосов
/ 04 июля 2019

Внутри bash я загружаю файл, такой как:

/path/to/dir/filename.ext

, теперь идея заключается в том, чтобы использовать это имя файла и "расширять его" имя после модификации, например:

some operation /path/to/dir/filename.ext > path/to/dir/filename_extendingfilename.ext;

До сих пор мне удавалось вызывать имя файла, используя это из другого вопроса, который уже задавался здесь (для справки Извлечь имя файла и расширение в Bash ):

basename filename .extension

basename /path/to/dir/filename.txt .txt

filename

Проблема, с которой я сталкиваюсь, заключается в создании нового файла с именем исходного файла и расширением его с помощью «_ extension.ext »

1 Ответ

0 голосов
/ 04 июля 2019

bash расширение параметра оболочки - это вариант здесь:

f=/path/to/dir/filename.ext
f2=${f%.ext*}"_extendingfilename.ext"

Расширение параметра оболочки обрезается при последнем появлении .ext (то есть оно также будет работать правильно дляфайл типа /path/to/dir/file.ext.name.ext)

Вот пример перенаправления в ответе:

f=/path/to/dir/filename.ext
someoperation $f > ${f%.ext*}"_extendingfilename.ext"
...