Bash — это мощная оболочка командной строки, которая обычно используется в операционных системах Linux и Unix. Одной из распространенных задач при работе с файлами в Bash является извлечение имени файла и расширения из пути к файлу. В этой статье мы обсудим, как извлечь имя файла и расширение в Bash, и приведем примеры того, как использовать эти значения в ваших сценариях.
Извлечение имени файла и расширения в Bash
Есть несколько способов извлечь имя файла и расширение в Bash, вот три распространенных метода:
- Использование команды базового имени
- Использование расширения параметра
- Использование переменной IFS (внутренний разделитель полей)
1: Использование команды Basename
базовое имя Команда возвращает имя файла из пути к файлу и извлекает имя файла и расширение. Вы можете использовать базовое имя команда с -суффикс опция, которая удаляет указанный суффикс из имени файла, как в приведенном ниже коде:
#!/бин/баш
# Пример пути к файлу
Путь к файлу '=' '/путь/к/файлу.txt'
# Извлечь имя файла
имя файла =$ ( базовое имя $file_path )
# Извлечь расширение
расширение '=' ' ${имя файла##*.} '
эхо 'Имя файла: $filename '
эхо 'Расширение: $расширение '
2: Использование расширения параметров
расширение параметра Синтаксис — мощная функция Bash, которая позволяет вам манипулировать строками. Чтобы извлечь имя файла и расширение с помощью расширения параметра, вы можете использовать ${параметр##слово} синтаксис, который удаляет самое длинное совпадение указанного шаблона с начала параметра, как в приведенном ниже коде:
#!/бин/баш# Пример пути к файлу
Путь к файлу '=' '/путь/к/файлу.txt'
# Извлечь имя файла
имя файла '=' ' ${file_path##*/} '
# Извлечь расширение
расширение '=' ' ${имя файла##*.} '
эхо 'Имя файла: $filename '
эхо 'Расширение: $расширение '
3: Использование переменной IFS (внутренний разделитель полей)
IFS-переменная используется Bash для разделения строк на поля путем установки IFS-переменная к разделителю пути («/»). Вы можете извлечь имя файла и расширение из пути к файлу через эту переменную, используя приведенный ниже код:
#!/бин/баш# Пример пути к файлу
Путь к файлу '=' '/путь/к/файлу.txt'
# Установите IFS в '/'
ИФС '=' '/' читать -р -а части <<< ' $file_path '
# Извлечь имя файла
имя файла '=' ' ${частей[-1]} '
# Извлечь расширение
расширение '=' ' ${имя файла##*.} '
эхо 'Имя файла: $filename '
эхо 'Расширение: $расширение '
Заключение
Извлечение имени файла и расширения из пути к файлу — обычная задача при работе с файлами в Bash. В этой статье обсуждались три распространенных метода извлечения имени файла и расширения в Bash. С помощью базовое имя команда, расширение параметра синтаксис, или IFS-переменная , вы можете быстро и легко извлечь значения имени файла и расширения из пути к файлу.