Przeczytaj nazwę pliku bez rozszerzenia w Bash

Read Filename Without Extension Bash



Użytkownicy Linuksa muszą regularnie pracować z plikami do wielu celów. Czasami użytkownicy muszą odczytać nazwę bazową pliku tylko poprzez usunięcie rozszerzenia pliku. Nazwę pliku i rozszerzenie można rozdzielić i przechowywać w różnych zmiennych w systemie Linux na wiele sposobów. Wbudowane polecenia Bash i rozwijanie parametrów powłoki mogą być użyte do usunięcia rozszerzenia pliku. Jak można odczytać nazwę pliku bez rozszerzenia przy użyciu wyżej wymienionych sposobów, wyjaśniono w tym samouczku.

Użycie polecenia `basename` do odczytania nazwy pliku

Polecenie `basename` służy do odczytania nazwy pliku bez rozszerzenia z katalogu lub ścieżki pliku.







Składnia:



nazwa podstawowaNAZWA[PRZYROSTEK]

lub



nazwa podstawowaOPCJA... NAZWA...

Tutaj NAME może zawierać nazwę pliku lub nazwę pliku z pełną ścieżką. SUFFIX jest opcjonalny i zawiera część rozszerzenia pliku, którą użytkownik chce usunąć. Polecenie `basename` ma kilka opcji opisanych poniżej.





Opcje

Nazwa Opis
-do Służy do przekazywania wielu nazw plików ze ścieżką lub bez ścieżki jako argumentów poleceń.
-s Służy do przekazywania rozszerzenia jako sufiksu, który należy usunąć.
-z Służy do wyświetlania wielu nazw plików poprzez oddzielenie każdego pliku wartością null.
-Wsparcie Służy do wyświetlania informacji o użyciu polecenia `basename`.
-wersja Służy do wyświetlania informacji o wersji.

Przykład-1: Używanie NAME i SUFFIX

Następujące polecenie `basename` pobierze nazwę pliku z rozszerzeniem. SUFFIX jest pomijany w tym poleceniu. Tutaj wyjście jest „produkt.txt” .



$nazwa podstawowa /Dom/fahmida/kod/produkt.txt

Jeśli chcesz pobrać nazwę pliku bez rozszerzenia, musisz podać rozszerzenie pliku jako SUFFIX za pomocą polecenia `basename`. Tutaj rozszerzenie to .txt. Uruchom następujące polecenie, aby usunąć rozszerzenie z pliku.

$nazwa podstawowa /Dom/fahmida/kod/produkt.txt .txt

Przykład-2: Używanie opcji „-a” i NAZWA

W tym przykładzie pokazano użycie opcji „-a” polecenia `basename`. Tutaj dwie ścieżki plików są przekazywane jako argumenty komendą `basename`. Każda nazwa pliku z rozszerzeniem zostanie pobrana ze ścieżki i wydrukowana przez nowy wiersz.

$nazwa podstawowa -do /Dom/fahmida/index.html/Dom/fahmida/kod/mp.txt

Przykład-3: Używanie opcji „-z” i NAZWA

Opcja '-z' jest używana z poleceniem `basename` do wypisania wielu nazw plików z wartością null zamiast nowej linii. Poniższe polecenie używa dwóch opcji razem, „-a” i „-z”. Tutaj dwie nazwy plików, index.html oraz mp.txt wydrukuje bez spacji lub nowej linii.

$nazwa podstawowa -ten /Dom/fahmida/index.html/Dom/fahmida/kod/mp.txt

Przykład-4: Używanie opcji „-s” i NAZWA

Następujące polecenie może być użyte jako alternatywa dla SUFFIX z `basename`. Rozszerzenie pliku musi przejść z opcją „-sh”, aby usunąć rozszerzenie pliku z pliku. Poniższy przykład usunie rozszerzenie „-sh” z pliku „addition.sh”.

$nazwa podstawowa -s.sh dodatek.sh

Przykład-5: Usuń rozszerzenie pliku bez SUFFIX

Jeśli nie znasz rozszerzenia pliku, który chcesz usunąć z nazwy pliku, ten przykład pomoże ci rozwiązać problem. Utwórz plik o nazwie read_file.sh z następującym kodem, aby pobrać nazwę pliku o dowolnym rozszerzeniu. W tym przykładzie użyto polecenia `sed` do usunięcia dowolnego typu rozszerzenia z nazwy pliku. Jeśli uruchomisz skrypt, wynikiem będzie „ przeciętny ’ po usunięciu rozszerzenia ‘ py „.

read_file.sh

#!/kosz/bash
# Ustaw nazwę pliku ze ścieżką
Nazwa pliku=„/home/fahmida/kod/średnia.py”
# Odczytaj nazwę pliku bez rozszerzenia za pomocą ‘basname’ i komendy `sed`
wyrzucił '$(basename '$filename' | sed 's/(.*)..*/1/')'

Uruchom skrypt.

$grzmotnąćread_file.sh

Przykład 6: Konwertuj rozszerzenie pliku z txt na docx

Nazwa pliku bez rozszerzenia musi przekonwertować plik z jednego rozszerzenia na drugie. Ten przykład pokazuje, jak można zmienić rozszerzenie wszystkich plików tekstowych (.txt) na pliki tekstowe (.docx) za pomocą polecenia `basename` w skrypcie bash. Utwórz plik o nazwie, plik_konwersji.sh z następującym kodem. W tym przypadku pętla for-in służy do odczytywania wszystkich plików tekstowych za pomocą .tekst rozszerzenie z bieżącego katalogu. Nazwa pliku bez rozszerzenia jest odczytywana poleceniem `basename` i zmieniana przez dodanie rozszerzenia .docx w każdej iteracji pętli.

plik_konwersji.sh

#!/kosz/bash
# pętla odczyta każdy plik tekstowy z bieżącego katalogu
dlaNazwa plikuw ``ls *.tekst``
robić
# Wydrukuj nazwę pliku tekstowego przed konwersją
wyrzucił 'Nazwa pliku przed konwersją:$nazwa pliku'
# Zmień rozszerzenie pliku txt na docx
mv - '$nazwa pliku' '$(nazwa podstawowa -- '$nazwapliku' .txt).docx '
Gotowe

Uruchom skrypt.

$grzmotnąćplik_konwersji.sh

Sprawdź, czy pliki tekstowe są konwertowane, czy nie, używając polecenia `ls`.

$ls

Przykład-7: Odczytaj nazwę pliku bez rozszerzenia za pomocą rozszerzenia parametrów powłoki

Rozszerzanie parametrów powłoki to kolejny sposób odczytywania nazwy pliku bez rozszerzenia w bash. Ten przykład pokazuje zastosowania rozszerzania parametrów powłoki. Następujące polecenie zapisze ścieżkę do pliku w zmiennej $ Nazwa pliku .

$Nazwa pliku='/var/usr/temp/mojplik.tar.gz'

Następujące polecenie usunie wszystkie typy rozszerzeń ze ścieżki i zapisze ścieżkę pliku bez rozszerzenia w zmiennej, $plik1 .

$plik1='${nazwa pliku%%.*}'

Następujące polecenie wydrukuje nazwę pliku tylko ze ścieżki. Tutaj dane wyjściowe będą „ mój plik „.

$wyrzucił '${plik1##*/}'

Jeśli nazwa pliku zawiera dwa rozszerzenia z dwoma kropkami (.) i chcesz odczytać nazwę pliku, usuwając ostatnie rozszerzenie pliku, musisz użyć następującego polecenia. Uruchom następujące polecenie, które przechowuje ścieżkę do pliku w zmiennej, $ plik2 usuwając ostatnie rozszerzenie pliku.

$plik2='${nazwa pliku%.*}'

Teraz uruchom następujące polecenie, aby wydrukować nazwę pliku z rozszerzeniem jednej kropki (.). Tutaj dane wyjściowe będą mójplik.tar.

$wyrzucił '$ {plik2 ## * /}'

Wniosek

Nazwa pliku bez rozszerzenia jest wymagana do różnych celów. Niektóre zastosowania nazwy pliku bez rozszerzenia wyjaśniono w tym samouczku na przykładach, takich jak konwersja plików. Ten samouczek pomoże zainteresowanym użytkownikom poznać sposoby oddzielania nazwy pliku i rozszerzenia od ścieżki pliku. Tutaj wyjaśniono dwa sposoby. Użytkownik może skorzystać z dowolnego z tych sposobów, aby wyodrębnić nazwę pliku tylko ze ścieżki pliku.