Jak wyodrębnić nazwę pliku i rozszerzenie w Bash

Jak wyodrębnić nazwę pliku i rozszerzenie w Bash

Bash to potężna powłoka wiersza polecenia, która jest powszechnie używana w systemach operacyjnych Linux i Unix. Jednym z powszechnych zadań podczas pracy z plikami w Bash jest wyodrębnienie nazwy pliku i rozszerzenia ze ścieżki pliku. W tym artykule omówiono sposób wyodrębnienia nazwy pliku i rozszerzenia w BASH i podaje przykłady wykorzystania tych wartości w skryptach.

Wyodrębnienie nazwy pliku i rozszerzenia w Bash

Istnieje kilka sposobów wyodrębnienia nazwy pliku i rozszerzenia w Bash, oto trzy popularne metody:

  • Za pomocą polecenia Basename
  • Za pomocą rozszerzenia parametrów
  • Za pomocą zmiennej IFS (wewnętrzny separator pola)

1: Korzystanie z polecenia Basename

Basename Polecenie zwraca nazwę pliku ze ścieżki pliku i wyodrębnia nazwę pliku i rozszerzenia. Możesz użyć Basename polecenie z -przyrostek Opcja, która usuwa określony sufiks z nazwy pliku, jak w kodzie poniżej:

#!/bin/bash
# Przykładowa ścieżka pliku
file_path = "/ścieżka/do/plik.tekst"
# Wyodrębnij nazwę pliku
filename = $ (basename $ file_path)
# Rozszerzenie wyciągu
rozszerzenie = "$ nazwa pliku ##*. "
echo „nazwa pliku: $ nazwa pliku”
Echo „rozszerzenie: $ rozszerzenie”

2: Korzystanie z rozszerzenia parametru

Rozszerzenie parametru Składnia jest potężną cechą Bash, która pozwala manipulować strunami. Aby wyodrębnić nazwę pliku i rozszerzenie za pomocą rozszerzenia parametrów, możesz użyć $ parametr ## Word Składnia, która usuwa najdłuższy dopasowanie określonego wzoru od początku parametru jak w poniższym kodzie:

#!/bin/bash
# Przykładowa ścieżka pliku
file_path = "/ścieżka/do/plik.tekst"
# Wyodrębnij nazwę pliku
filename = "$ file_path ##*/"
# Rozszerzenie wyciągu
rozszerzenie = "$ nazwa pliku ##*. "
echo „nazwa pliku: $ nazwa pliku”
Echo „rozszerzenie: $ rozszerzenie”

3: Za pomocą zmiennej IFS (wewnętrzny separator pola)

Zmienna IFS jest używany przez Bash do podziału ciągów na pola poprzez ustawienie Zmienna IFS do separatora ścieżki („/”). Możesz wyodrębnić nazwę pliku i rozszerzenie ze ścieżki pliku przez tę zmienną przy użyciu kodu poniżej podanego:

#!/bin/bash
# Przykładowa ścieżka pliku
file_path = "/ścieżka/do/plik.tekst"
# Ustaw ifs na „/”
Ifs = "/" odczyt -r -a części <<< "$file_path"
# Wyodrębnij nazwę pliku
filename = "$ części [-1]"
# Rozszerzenie wyciągu
rozszerzenie = "$ nazwa pliku ##*. "
echo „nazwa pliku: $ nazwa pliku”
Echo „rozszerzenie: $ rozszerzenie”

Wniosek

Wyodrębnienie nazwy pliku i rozszerzenia ze ścieżki pliku jest powszechnym zadaniem podczas pracy z plikami w Bash. W tym artykule omówiono trzy popularne metody wyodrębnienia nazwy pliku i rozszerzenia w BASH. Za pomocą Basename polecenie Rozszerzenie parametru składnia lub Zmienna IFS, Możesz szybko i łatwo wyodrębnić nazwę pliku i wartości rozszerzenia ze ścieżki pliku.