Korištenje naredbe `basename` za čitanje naziva datoteke
Naredba `basename` koristi se za čitanje naziva datoteke bez ekstenzije iz direktorija ili putanje datoteke.
Sintaksa:
naziv bazeIME[SUFIKS]
ili
naziv bazeOPCIJA ... IME ...
Ovdje NAME može sadržavati naziv datoteke ili naziv datoteke s punim putem. SUFFIX je neobavezan i sadrži dio nastavka datoteke koji korisnik želi ukloniti. Naredba `basename` ima neke opcije koje su opisane u nastavku.
Opcije
Ime | Opis |
-do | Koristi se za prosljeđivanje više naziva datoteka sa stazom ili bez puta kao naredbeni argumenti. |
-s | Koristi se za prosljeđivanje nastavka kao sufiksa koji treba ukloniti. |
-S | Koristi se za prikaz više naziva datoteka odvajanjem svake datoteke s null. |
-Pomozite | Koristi se za prikaz informacija korištenja naredbe `basename`. |
-verzija | Koristi se za prikaz podataka o verziji. |
Primjer-1: Korištenje NAME i SUFFIX
Sljedeća naredba `basename` dohvatit će naziv datoteke s nastavkom. SUFFIX je izostavljen iz ove naredbe. Ovdje je izlaz 'Product.txt' .
$naziv baze /Dom/fahmida/kodirati/product.txt
Ako želite dohvatiti naziv datoteke bez ekstenzije, tada morate datoteku označiti kao SUFFIX naredbom `basename`. Ovdje je proširenje .txt. Pokrenite sljedeću naredbu da biste uklonili proširenje iz datoteke.
$naziv baze /Dom/fahmida/kodirati/product.txt .txt
Primjer-2: Upotreba opcije '-a' i NAME
Upotreba opcije '-a' naredbe `basename` prikazana je u ovom primjeru. Ovdje se dvije staze datoteka prosljeđuju kao argumenti naredbom `basename`. Svaki naziv datoteke s nastavkom dohvatit će se s putanje i ispisati novim retkom.
$naziv baze -do /Dom/fahmida/index.html/Dom/fahmida/kodirati/emp.txt
Primjer-3: Upotreba opcije '-z' i NAME
Opcija '-z' koristi se s naredbom `basename 'za ispis više naziva datoteka s null vrijednošću umjesto novog retka. Sljedeća naredba koristi dvije opcije zajedno, '-a' i '-z'. Evo dva naziva datoteka, index.html i emp.txt ispisat će se bez razmaka ili novog retka.
$naziv baze - /Dom/fahmida/index.html/Dom/fahmida/kodirati/emp.txt
Primjer-4: Upotreba opcije '-s' i NAME
Sljedeća naredba može se koristiti kao alternativa SUFFIX -u s `basename`. Proširenje datoteke mora proći s opcijom '-sh' za uklanjanje nastavka datoteke iz datoteke. Sljedeći primjer uklonit će ekstenziju '-sh' iz datoteke, 'add.sh'.
$naziv baze -s.sh dodatak.sh
Primjer-5: Uklonite ekstenziju datoteke bez SUFFIX-a
Ako ne znate proširenje datoteke koju želite ukloniti iz naziva datoteke, ovaj će vam primjer pomoći u rješavanju problema. Napravite datoteku pod nazivom read_file.sh sa sljedećim kodom za dohvaćanje naziva datoteke bilo koje ekstenzije. Naredba `sed` koristi se u ovom primjeru za uklanjanje bilo koje vrste proširenja iz naziva datoteke. Ako pokrenete skriptu, izlaz će biti ‘ prosjek 'Nakon uklanjanja proširenja' py '.
read_file.sh
#!/bin/bash# Postavite naziv datoteke s putanjom
naziv datoteke='/home/fahmida/code/average.py'
# Pročitajte naziv datoteke bez proširenja pomoću naredbi 'basname' i `sed`
izbaciti '$ (naziv baze '$ naziv datoteke' | sed 's/ (.*) ..*/ 1/')'
Pokrenite skriptu.
$bashread_file.sh
Primjer-6: Pretvorba nastavka datoteke iz txt u docx
Naziv datoteke bez proširenja mora pretvoriti datoteku s jedne ekstenzije u drugu. Ovaj primjer pokazuje kako možete promijeniti ekstenziju svih tekstualnih datoteka (.txt) u datoteke riječi (.docx) pomoću naredbe `basename 'u bash skripti. Izradite datoteku s imenom, convert_file.sh sa sljedećim kodom. Ovdje se for-in petlja koristi za čitanje svih tekstualnih datoteka s .txt proširenje iz trenutnog direktorija. Naziv datoteke bez nastavka čita se naredbom `basename` i preimenuje dodavanjem .docx ekstenzije u svakoj iteraciji petlje.
convert_file.sh
#!/bin/bash# petlja će čitati svaku tekstualnu datoteku iz trenutnog direktorija
zanaziv datotekeu ``ls *.txt``
čini
# Ispišite naziv tekstualne datoteke prije pretvorbe
izbaciti 'Naziv datoteke prije pretvorbe:$ naziv datoteke'
# Promijenite ekstenziju datoteke txt u docx
mv - '$ naziv datoteke' '$ (basename - '$ filename' .txt).docx '
učinjeno
Pokrenite skriptu.
$bashconvert_file.shProvjerite jesu li tekstualne datoteke pretvorene ili ne pomoću naredbe `ls`.
$ls
Primjer-7: Pročitajte naziv datoteke bez proširenja pomoću proširenja parametra Shell
Proširenje parametra ljuske drugi je način čitanja naziva datoteke bez nastavka u bashu. Ovaj primjer prikazuje uporabu proširenja parametara ljuske. Sljedeća naredba pohranit će naziv putanje datoteke u varijablu, $ naziv datoteke .
$naziv datoteke='/var/usr/temp/myfile.tar.gz'Sljedeća naredba uklonit će sve vrste proširenja s putanje i pohraniti put datoteke bez nastavka u varijablu, $ datoteka1 .
$datoteka1='$ {naziv datoteke %%.*}'Sljedeća naredba ispisat će naziv datoteke samo s putanje. Ovdje će izlaz ' myfile '.
$izbaciti '$ {file1 ##*/}'Ako naziv datoteke sadrži dva nastavka s dvije točke (.) I želite pročitati naziv datoteke uklanjanjem posljednjeg nastavka datoteke, tada morate upotrijebiti sljedeću naredbu. Pokrenite sljedeću naredbu koja sprema put datoteke u varijablu, $ file2 uklanjanjem posljednjeg nastavka datoteke.
$datoteka 2='$ {naziv datoteke%.*}'Sada pokrenite sljedeću naredbu za ispis naziva datoteke s nastavkom s jednom točkom (.). Ovdje će izlaz biti myfile.tar.
$izbaciti '$ {file2 ## * /}'
Zaključak
Naziv datoteke bez proširenja potreban je u različite svrhe. Neke upotrebe imena datoteke bez proširenja objašnjene su u ovom vodiču pomoću nekih primjera, poput konverzije datoteka. Ovaj će vodič pomoći korisnicima koji su zainteresirani naučiti načine odvajanja naziva datoteke i njenog nastavka od putanje do datoteke. Ovdje su objašnjena dva načina. Korisnik može slijediti bilo koji od ovih načina za izdvajanje naziva datoteke samo iz putanje datoteke.