Jak wyodrębnić plik podstawy bez ścieżki i rozszerzenia w Bash

Jak wyodrębnić plik podstawy bez ścieżki i rozszerzenia w Bash
Polecenie podstawy podstawowej jest powszechnie używane w BASH do odzyskania nazwy podstawowej pliku lub katalogu z danej ścieżki poprzez usunięcie dowolnych wiodących komponentów katalogu. W tym artykule zbadano, jak wyodrębnić nazwę bazową pliku bez jego ścieżki i rozszerzenia za pomocą BASH.

Wyodrębnij plik podstawy bez ścieżki i rozszerzenia w Bash

Aby wyodrębnić nazwę podstawy pliku bez jego ścieżki i rozszerzenia, możemy użyć polecenia Basename w połączeniu z cechą zastępowania parametrów BASH. Polecenie Basename zwraca ostatni komponent nazwy ścieżki, który w naszym przypadku byłby nazwą pliku z jego rozszerzeniem. Jednak określając opcję przyrostka, możemy usunąć rozszerzenie z nazwy pliku, oto przykładowy kod BASH:

#!kosz/bash
FilePath =/home/aaliyan/bash3.cii
S = $ (Basename $ filepath)
echo "$ s%.* ”

Powyższy skrypt bash definiuje zmienną o nazwie „ścieżka pliku”I przypisuje mu ścieżkę pliku„/dom/aaliyan/bash3.cii". Następnie skrypt używa polecenia Basename do wyodrębnienia nazwy podstawowej pliku ze ścieżki pliku i przypisuje wynik do zmiennej o nazwie „S”.

Drugi rozszerzenie parametru usuwa rozszerzenie z nazwy pliku, usuwając najkrótszy możliwy dopasowanie dowolnej liczby znaków, a następnie kropka za pomocą „%.*”. Powstały ciąg „Bash3” jest następnie drukowany do konsoli za pomocą polecenia Echo:

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

#!kosz/bash
FilePath =/home/aaliyan/bash3.cii
s = $ FilePath ##*/
echo "$ s%.* ”

To jest skrypt bash, który definiuje zmienną o nazwie „filepath” i przypisuje jej wartość „/dom/aaliyan/bash3.cii". Następnie skrypt używa funkcji rozszerzenia parametru BASH dwukrotnie do wyodrębnienia nazwy podstawy pliku bez jego ścieżki i rozszerzenia. W szczególności pierwsze rozszerzenie parametru usuwa ścieżkę z nazwy pliku, usuwając najdłuższy możliwy dopasowanie dowolnej liczby znaków, a następnie do przodu przy użyciu „##/”.

Wynikowy ciąg, „Bash3.cii”Następnie przypisuje się do zmiennej o nazwie„ S ”. Drugi rozszerzenie parametru usuwa rozszerzenie z nazwy pliku, usuwając najkrótszy możliwy dopasowanie dowolnej liczby znaków, a następnie kropka za pomocą „%.". Powstały ciąg „Bash3” jest następnie drukowany do konsoli za pomocą polecenia Echo:

Wniosek

Wyodrębnienie nazwy podstawy pliku bez jego ścieżki i rozszerzenia jest powszechnym zadaniem w skryptowaniu bash. Korzystając z polecenia Basename w połączeniu z funkcjami podstawienia parametru i rozszerzaniem parametrów BASH, możemy łatwo osiągnąć to zadanie. Może to być przydatne podczas pracy z nazwami plików w skryptach, na przykład podczas zmiany nazwy plików lub wykonywania operacji na plikach o podobnych nazwach.