Pročitajte naziv datoteke bez proširenja u Bashu

Read Filename Without Extension Bash

Korisnici Linuxa moraju redovito raditi s datotekama u mnoge svrhe. Ponekad korisnici trebaju pročitati osnovni naziv datoteke samo uklanjanjem nastavka datoteke. Naziv i proširenje datoteke mogu se odvojiti i pohraniti na različite varijable u Linuxu na više načina. Bash ugrađena naredba i proširenje parametara ljuske mogu se koristiti za uklanjanje nastavka datoteke. U ovom vodiču objašnjeno je kako se naziv datoteke bez nastavka može pročitati na gore navedene načine.

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.sh

Provjerite 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.