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/bashput 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.