Kako izdvojiti osnovni naziv datoteke bez staze i ekstenzije u Bashu

Kako Izdvojiti Osnovni Naziv Datoteke Bez Staze I Ekstenzije U Bashu



Naredba basename obično se koristi u Bashu za dohvaćanje osnovnog naziva datoteke ili direktorija iz zadane staze uklanjanjem svih vodećih komponenti direktorija. Ovaj članak će istražiti kako pomoću bash-a izdvojiti osnovni naziv datoteke bez putanje i ekstenzije.

Ekstrakt osnovnog naziva datoteke bez staze i ekstenzije u Bashu

Za ekstrahiranje osnovnog imena datoteke bez njezine staze i ekstenzije, možemo koristiti naredbu osnovnog imena u kombinaciji sa značajkom zamjene parametara basha. Naredba basename vraća posljednju komponentu naziva staze, što bi u našem slučaju bio naziv datoteke s ekstenzijom. Međutim, određivanjem opcije sufiksa, možemo ukloniti ekstenziju iz naziva datoteke, evo primjera bash koda:

#!bin/bash
put datoteke = / Dom / aaliyan / bash3.sh
s =$ ( osnovno ime $putanja datoteke )
jeka ' ${s%.*} '

Gornja bash skripta definira varijablu pod nazivom ' put datoteke ” i dodjeljuje mu put do datoteke “ /home/aaliyan/bash3.sh “. Skripta zatim koristi naredbu basename za izdvajanje osnovnog naziva datoteke iz putanje datoteke i dodjeljuje rezultat varijabli pod nazivom 's'.







Drugo proširenje parametra uklanja ekstenziju iz naziva datoteke uklanjanjem najkraćeg mogućeg podudaranja bilo kojeg broja znakova nakon kojih slijedi točka pomoću “%.*”. Rezultirajući niz, 'bash3', zatim se ispisuje na konzolu pomoću naredbe echo:





Drugi način za ekstrahiranje osnovnog imena datoteke bez njenog puta do datoteke i ekstenzije je korištenje proširenja parametra koje je bez upotrebe naredbe osnovnog imena, ispod je primjer bash koda koji koristi metodu proširenja parametra za dobivanje osnovnog naziva datoteke bez datoteke put i nastavak datoteke:





#!bin/bash
put datoteke = / Dom / aaliyan / bash3.sh
s = ${filepath##*/}
jeka ' ${s%.*} '

Ovo je bash skripta koja definira varijablu koja se zove 'filepath' i dodjeljuje joj vrijednost ' /home/aaliyan/bash3.sh “. Skripta tada koristi značajku proširenja parametara bash dvaput za ekstrahiranje osnovnog naziva datoteke bez putanje i ekstenzije. Konkretno, prvo proširenje parametra uklanja stazu iz naziva datoteke uklanjanjem najdužeg mogućeg podudaranja bilo kojeg broja znakova iza kojeg slijedi kosa crta uz pomoć “##/”.

Rezultirajući niz, ' bash3.sh ” se zatim dodjeljuje varijabli pod nazivom “s”. Drugo proširenje parametra uklanja ekstenziju iz naziva datoteke uklanjanjem najkraćeg mogućeg podudaranja bilo kojeg broja znakova nakon kojih slijedi točka pomoću '%.'. Rezultirajući niz, 'bash3', zatim se ispisuje na konzolu pomoću naredbe echo:



Zaključak

Ekstrahiranje osnovnog naziva datoteke bez putanje i ekstenzije uobičajen je zadatak u bash skriptiranju. Korištenjem naredbe basename u kombinaciji sa značajkama zamjene parametara i proširenja parametara basha, lako možemo postići ovaj zadatak. Ovo može biti korisno kada radite s nazivima datoteka u skriptama, na primjer, kada preimenujete datoteke ili izvodite operacije na datotekama sa sličnim nazivima.