Przeczytaj nazwę pliku bez rozszerzenia w Bash

Przeczytaj nazwę pliku bez rozszerzenia w Bash
Użytkownicy Linux muszą regularnie pracować z plikami do wielu celów. Czasami użytkownicy muszą odczytać nazwę podstawy pliku tylko poprzez usunięcie rozszerzenia pliku. Nazwa pliku i rozszerzenie można oddzielić i przechowywać na różnych zmiennych w Linux na wiele sposobów. Do usunięcia rozszerzenia pliku można użyć rozszerzenia parametru BASH i powłoki. Jak można odczytać nazwę pliku bez rozszerzenia za pomocą sposobów wspomnianych powyżej, są wyjaśnione w tym samouczku.

Korzystanie z 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 podstawy [sufiks]

Lub

Opcja Basename… Nazwa…

Tutaj nazwa może zawierać nazwę pliku lub nazwę pliku z pełną ścieżką. Sufiks jest opcjonalny i zawiera część rozszerzenia pliku, którą użytkownik chce usunąć. Polecenie „Basename” ma pewne opcje, które opisano poniżej.

Opcje

Nazwa Opis
-A Służy do przekazywania wielu nazw plików ze ścieżką lub bez ścieżki jako argumenty poleceń.
-S Służy do przekazywania rozszerzenia jako sufiks, który musi usunąć.
-z Służy do wyświetlania wielu nazw plików poprzez oddzielenie każdego pliku z NULL.
-pomoc 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 nazwy i sufiksu

Poniższe polecenie „Basename” odzyska nazwę pliku z rozszerzeniem. Sufiks jest pominięty w tym poleceniu. Tutaj wyjście jest 'produkt.tekst'.

$ basename/home/fahmida/kod/produkt.tekst

Jeśli chcesz odzyskać nazwę pliku bez rozszerzenia, musisz podać rozszerzenie pliku jako sufiks z poleceniem „Basename”. Tutaj rozszerzenie brzmi „.tekst". Uruchom następujące polecenie, aby usunąć rozszerzenie z pliku.

$ basename/home/fahmida/kod/produkt.tekst .tekst

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

Użycie opcji „-a” polecenia „Basename” pokazano w tym przykładzie. Tutaj dwie ścieżki plików są przekazywane jako argumenty za pomocą polecenia „Basename”. Każda nazwa pliku z rozszerzeniem będzie pobierana ze ścieżki i wydrukować według Newline.

$ basename -a/home/fahmida/index.html/home/fahmida/kod/emp.tekst

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

Opcja „-Z” jest używana z poleceniem „Basename” do wydrukowania wielu nazw plików o wartości zerowej zamiast nowej linii. Poniższe polecenie używa dwóch opcji razem, „-a” i „-z”. Tutaj, dwa nazwy plików, indeks.html I emp.tekst wydrukuje bez miejsca lub nowej linii.

$ basename -az/home/fahmida/index.html/home/fahmida/kod/emp.tekst

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

Poniższe polecenie może być używane jako alternatywa przyrostka z „Basename”. Rozszerzenie pliku musi przejść z opcją „-SH”, aby usunąć rozszerzenie pliku z pliku. Poniższy przykład usunie rozszerzenie „-SH” z pliku „Dodatek.cii'.

$ basename -s .Dodatek sh.cii

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

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.cii z następującym kodem w celu odzyskania nazwy pliku dowolnego rozszerzenia. Polecenie „SED” jest używane w tym przykładzie do usunięcia dowolnego rodzaju rozszerzenia z nazwy pliku. Jeśli uruchomisz skrypt, dane wyjściowe będzie 'przeciętny„Po usunięciu rozszerzenia”py'.

Read_file.cii

#!/bin/bash
# Ustaw nazwę pliku ze ścieżką
filename = "/home/fahmida/kod/średnia.py "
# Przeczytaj nazwę pliku bez rozszerzenia, używając polecenia „basname” i „sed”
echo "$ (basename" $ ​​filename "| sed 's/\ (.*\) \… */\ 1/') "

Uruchom skrypt.

$ bash read_file.cii

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żesz zmienić rozszerzenie wszystkich plików tekstowych (.txt) w plikach słów (.Docx) za pomocą polecenia „Basename” w skrypcie Bash. Utwórz plik o nazwie, Convert_file.cii z następującym kodem. Tutaj do czytania wszystkich plików tekstowych jest używana do odczytu wszystkich plików tekstowych ".tekst" rozszerzenie z bieżącego katalogu. Nazwa pliku bez rozszerzenia jest odczytywana przez polecenie „Basename” i przemianowane przez dodanie „Dodawanie”.rozszerzenie DOCX ”w każdej iteracji pętli.

Convert_file.cii

#!/bin/bash
# pętla odczytuje każdy plik tekstowy z bieżącego katalogu
dla nazwy pliku w „LS *.tekst'
Do
# Wydrukuj nazwę pliku tekstowego przed konwersją
echo „nazwa pliku przed konwersją: $ nazwa pliku”
# Zmień rozszerzenie pliku TXT na DOCX
MV - „$ fileName” „$ (basename -„ $ filename ” .tekst).Docx "
zrobione

Uruchom skrypt.

$ bash Convert_file.cii

Sprawdź, czy pliki tekstowe są konwertowane lub nie za pomocą polecenia „LS”.

$ ls

Przykład-7: odczyt nazwy pliku bez rozszerzenia za pomocą rozszerzenia parametru powłoki

Rozszerzenie parametru powłoki to kolejny sposób odczytania nazwy pliku bez rozszerzenia w BASH. Ten przykład pokazuje zastosowania rozszerzenia parametru powłoki. Poniższe polecenie będzie przechowywać nazwę pliku w zmiennej, $Nazwa pliku.

$ filename = "/var/usr/temp/myfile.smoła.GZ "

Poniższe polecenie usunie wszystkie typy rozszerzenia ze ścieżki i przechowuje ścieżkę pliku bez rozszerzenia w zmiennej, $ file1.

$ file1 = "$ nazwa pliku %%.* ”

Następujące polecenie wydrukuje nazwę pliku tylko ze ścieżki. Tutaj wyjście będziemój plik'.

$ echo "$ file1 ##*/"

Jeśli nazwa pliku zawiera dwa rozszerzenia z dwiema kropkami (.) i chcesz przeczytać nazwę pliku, usuwając ostatnie rozszerzenie pliku, a następnie musisz użyć następującego polecenia. Uruchom następujące polecenie, które przechowują ścieżkę pliku do zmiennej, $ file2 Usuwając ostatnie rozszerzenie pliku.

$ file2 = "$ nazwa pliku%.* ”

Teraz uruchom następujące polecenie, aby wydrukować nazwę pliku za pomocą jednej kropki (.) rozszerzenie. Tutaj wyjście będzie "mój plik.smoła".

$ echo "$ file2 ##*/"

Wniosek

Nazwa pliku bez rozszerzenia jest wymagana do różnych celów. Niektóre zastosowania nazwy pliku bez rozszerzenia są wyjaśnione w tym samouczku za pomocą niektórych przykładów, takich jak konwersja plików. Ten samouczek pomoże użytkownikom, którzy są zainteresowani nauczeniem się sposobów oddzielenia nazwy pliku i rozszerzenia od ścieżki pliku. Tutaj wyjaśniono dwa sposoby. Użytkownik może zastosować dowolny z tych sposobów wyodrębnienia nazwy pliku tylko ze ścieżki pliku.