Jak wyodrębnić nazwę bazową pliku bez ścieżki i rozszerzenia w Bash

Jak Wyodrebnic Nazwe Bazowa Pliku Bez Sciezki I Rozszerzenia W Bash



Polecenie basename jest często używane w Bash do pobierania podstawowej nazwy pliku lub katalogu z danej ścieżki poprzez usunięcie wszelkich wiodących komponentów katalogu. W tym artykule zbadamy, jak wyodrębnić podstawową nazwę pliku bez jego ścieżki i rozszerzenia za pomocą bash.

Wyodrębnij nazwę bazową pliku bez ścieżki i rozszerzenia w Bash

Aby wyodrębnić nazwę podstawową pliku bez jego ścieżki i rozszerzenia, możemy użyć komendy basename w połączeniu z funkcją bash podstawiania parametrów. Polecenie basename zwraca ostatni składnik nazwy ścieżki, którym w naszym przypadku byłaby nazwa pliku z rozszerzeniem. Jednak określając opcję sufiksu, możemy usunąć rozszerzenie z nazwy pliku, oto przykładowy kod bash:

#!bin/bash
ścieżka pliku = / dom / aaliyan / bash3.sh
S = $ ( nazwa podstawowa $filepath )
Echo ' ${s%.*} '

Powyższy skrypt basha definiuje zmienną o nazwie „ ścieżka pliku ” i przypisuje mu ścieżkę do pliku „ /home/aaliyan/bash3.sh „. Następnie skrypt używa polecenia basename, aby wyodrębnić podstawową nazwę pliku ze ścieżki pliku i przypisuje wynik do zmiennej o nazwie „s”.







Drugie rozwinięcie parametru usuwa rozszerzenie z nazwy pliku, usuwając najkrótsze dopasowanie dowolnej liczby znaków, po których następuje kropka z użyciem „%.*”. Wynikowy ciąg „bash3” jest następnie drukowany na konsoli za pomocą polecenia echo:





Innym sposobem wyodrębnienia nazwy podstawowej pliku bez jego ścieżki i rozszerzenia jest użycie rozszerzenia parametru bez użycia polecenia basename, poniżej znajduje się przykładowy kod bash, który używa metody rozszerzenia parametru, aby uzyskać nazwę podstawową pliku bez pliku ścieżka i rozszerzenie pliku:





#!bin/bash
ścieżka pliku = / dom / aaliyan / bash3.sh
S = ${ścieżka do pliku##*/}
Echo ' ${s%.*} '

To jest skrypt bash, który definiuje zmienną o nazwie „filepath” i przypisuje jej wartość „ /home/aaliyan/bash3.sh „. Skrypt następnie dwukrotnie używa funkcji rozszerzania parametrów bash, aby wyodrębnić nazwę podstawową pliku bez jego ścieżki i rozszerzenia. W szczególności pierwsze rozwinięcie parametru usuwa ścieżkę z nazwy pliku poprzez usunięcie najdłuższego możliwego dopasowania dowolnej liczby znaków, po którym następuje ukośnik za pomocą „##/”.

Wynikowy ciąg „ bash3.sh ” jest następnie przypisywany do zmiennej o nazwie „s”. Drugie rozwinięcie parametru usuwa rozszerzenie z nazwy pliku, usuwając najkrótsze dopasowanie dowolnej liczby znaków, po których następuje kropka z użyciem „%.”. Wynikowy ciąg „bash3” jest następnie drukowany na konsoli za pomocą polecenia echo:



Wniosek

Wyodrębnianie nazwy podstawowej pliku bez jego ścieżki i rozszerzenia jest częstym zadaniem w skryptach bash. Używając polecenia basename w połączeniu z funkcjami bash dotyczącymi podstawiania i rozszerzania parametrów, możemy łatwo wykonać to zadanie. Może to być przydatne podczas pracy z nazwami plików w skryptach, na przykład podczas zmiany nazw plików lub wykonywania operacji na plikach o podobnych nazwach.