Извлечь базовое имя файла без пути и расширения в 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, мы можем легко решить эту задачу. Это может быть полезно при работе с именами файлов в скриптах, например, при переименовании файлов или выполнении операций над файлами с похожими именами.