Bash to potężna powłoka wiersza poleceń, która jest powszechnie używana w systemach operacyjnych Linux i Unix. Jednym z typowych zadań podczas pracy z plikami w Bash jest wyodrębnienie nazwy pliku i rozszerzenia ze ścieżki pliku. W tym artykule omówimy, jak wyodrębnić nazwę pliku i rozszerzenie w Bash oraz przedstawimy przykłady wykorzystania tych wartości w skryptach.
Wyodrębnianie nazwy pliku i rozszerzenia w Bash
Istnieje kilka sposobów na wyodrębnienie nazwy pliku i rozszerzenia w Bash, oto trzy popularne metody:
- Używanie polecenia Basename
- Korzystanie z rozszerzenia parametrów
- Korzystanie ze zmiennej IFS (wewnętrzny separator pól).
1: Używanie polecenia Basename
The nazwa podstawowa polecenie zwraca nazwę pliku ze ścieżki pliku i wyodrębnia nazwę pliku i rozszerzenie. Możesz użyć nazwa podstawowa polecenie z -przyrostek opcja, która usuwa określony sufiks z nazwy pliku, jak w poniższym kodzie:
#!/bin/bash
# Przykładowa ścieżka do pliku
ścieżka pliku = '/ścieżka/do/pliku.txt'
# Wyodrębnij nazwę pliku
Nazwa pliku = $ ( nazwa podstawowa $ścieżka_pliku )
# Wyodrębnij rozszerzenie
rozszerzenie = ' ${nazwa pliku##*.} '
Echo 'Nazwa pliku: $nazwa pliku '
Echo 'Rozszerzenie: $rozszerzenie '
2: Korzystanie z rozszerzenia parametrów
The rozszerzenie parametrów Składnia to potężna funkcja Bash, która pozwala manipulować ciągami znaków. Aby wyodrębnić nazwę pliku i rozszerzenie za pomocą rozszerzenia parametrów, możesz użyć ${parametr##słowo} składnia, która usuwa najdłuższe dopasowanie określonego wzorca od początku parametru, jak w poniższym kodzie:
#!/bin/bash# Przykładowa ścieżka do pliku
ścieżka pliku = '/ścieżka/do/pliku.txt'
# Wyodrębnij nazwę pliku
Nazwa pliku = ' ${file_path##*/} '
# Wyodrębnij rozszerzenie
rozszerzenie = ' ${nazwa pliku##*.} '
Echo 'Nazwa pliku: $nazwa pliku '
Echo 'Rozszerzenie: $rozszerzenie '
3: Korzystanie ze zmiennej IFS (wewnętrzny separator pól).
The Zmienna IFS jest używany przez Bash do dzielenia łańcuchów na pola poprzez ustawienie Zmienna IFS do separatora ścieżki („/”). Możesz wyodrębnić nazwę pliku i rozszerzenie ze ścieżki pliku za pomocą tej zmiennej, używając poniższego kodu:
#!/bin/bash# Przykładowa ścieżka do pliku
ścieżka pliku = '/ścieżka/do/pliku.txt'
# Ustaw IFS na „/”
IFS = '/' Czytać -R -A Części <<< ' $ścieżka_pliku '
# Wyodrębnij nazwę pliku
Nazwa pliku = ' ${części[-1]} '
# Wyodrębnij rozszerzenie
rozszerzenie = ' ${nazwa pliku##*.} '
Echo 'Nazwa pliku: $nazwa pliku '
Echo 'Rozszerzenie: $rozszerzenie '
Wniosek
Wyodrębnianie nazwy pliku i rozszerzenia ze ścieżki pliku jest częstym zadaniem podczas pracy z plikami w Bash. W tym artykule omówiono trzy popularne metody wyodrębniania nazwy pliku i rozszerzenia w Bash. za pomocą nazwa podstawowa komenda, ew rozszerzenie parametrów składnia lub Zmienna IFS , możesz szybko i łatwo wyodrębnić nazwę pliku i wartości rozszerzenia ze ścieżki pliku.