Как извлечь базовое имя файла без пути и расширения в Bash

Kak Izvlec Bazovoe Ima Fajla Bez Puti I Rassirenia V Bash



Команда basename обычно используется в Bash для извлечения базового имени файла или каталога по заданному пути путем удаления всех ведущих компонентов каталога. В этой статье мы рассмотрим, как извлечь базовое имя файла без его пути и расширения с помощью bash.

Извлечь базовое имя файла без пути и расширения в Bash

Чтобы извлечь базовое имя файла без его пути и расширения, мы можем использовать команду basename в сочетании с функцией подстановки параметров bash. Команда basename возвращает последний компонент пути, который в нашем случае будет именем файла с его расширением. Однако, указав параметр суффикса, мы можем удалить расширение из имени файла, вот пример кода bash:

#!бен/баш
Путь к файлу '=' / дом / аалиян / bash3.sh
с =$ ( базовое имя $filepath )
эхо ' ${с%.*} '

Приведенный выше сценарий bash определяет переменную с именем « Путь к файлу ' и присваивает ему путь к файлу ' /home/aaliyan/bash3.sh “. Затем сценарий использует команду basename для извлечения базового имени файла из пути к файлу и присваивает результат переменной с именем «s».







Расширение второго параметра удаляет расширение из имени файла, удаляя кратчайшее возможное совпадение любого количества символов, за которым следует точка, используя «%.*». Полученная строка «bash3» затем выводится на консоль с помощью команды echo:





Другой способ извлечь базовое имя файла без его пути к файлу и расширения — использовать расширение параметра без использования команды basename. Ниже приведен пример кода bash, который использует метод расширения параметра для получения базового имени файла без файла. путь и расширение файла:





#!бен/баш
Путь к файлу '=' / дом / аалиян / bash3.sh
с '=' ${путь к файлу##*/}
эхо ' ${с%.*} '

Это скрипт bash, который определяет переменную с именем «filepath» и присваивает ей значение « /home/aaliyan/bash3.sh “. Затем сценарий дважды использует функцию расширения параметра bash для извлечения базового имени файла без его пути и расширения. В частности, раскрытие первого параметра удаляет путь из имени файла, удаляя максимально возможное совпадение любого количества символов, за которым следует косая черта с использованием «##/».

Получившаяся строка « bash3.sh Затем присваивается переменной с именем «s». Расширение второго параметра удаляет расширение из имени файла, удаляя кратчайшее возможное совпадение любого количества символов, за которым следует точка с использованием «%.». Полученная строка «bash3» затем выводится на консоль с помощью команды echo:



Заключение

Извлечение базового имени файла без его пути и расширения — обычная задача в сценариях bash. Используя команду basename в сочетании с функциями подстановки и расширения параметров bash, мы можем легко решить эту задачу. Это может быть полезно при работе с именами файлов в скриптах, например, при переименовании файлов или выполнении операций над файлами с похожими именами.