Extrahujte základný názov súboru bez cesty a prípony v Bash
Na extrahovanie základného názvu súboru bez jeho cesty a prípony môžeme použiť príkaz basename v spojení s funkciou nahrádzania parametrov bash. Príkaz basename vracia posledný komponent názvu cesty, ktorým by v našom prípade bol názov súboru s jeho príponou. Zadaním možnosti prípony však môžeme odstrániť príponu z názvu súboru, tu je príklad bash kódu:
#!bin/bashcesta k súboru = / Domov / aaliyan / bash3.sh
s = $ ( základné meno $filepath )
ozvena ' ${s %.*} '
Vyššie uvedený bash skript definuje premennú s názvom „ cesta k súboru “ a priradí mu cestu k súboru “ /home/aaliyan/bash3.sh “. Skript potom použije príkaz basename na extrahovanie základného názvu súboru z cesty k súboru a výsledok priradí premennej s názvom „s“.
Rozšírenie druhého parametra odstráni príponu z názvu súboru odstránením najkratšej možnej zhody ľubovoľného počtu znakov, za ktorou nasleduje bodka pomocou „%.*“. Výsledný reťazec „bash3“ sa potom vytlačí do konzoly pomocou príkazu echo:
Ďalším spôsobom, ako extrahovať základný názov súboru bez jeho cesty k súboru a prípony, je použitie rozšírenia parametrov bez použitia príkazu základný názov, nižšie je príklad bash kódu, ktorý používa metódu rozšírenia parametrov na získanie základného názvu súboru bez súboru. cesta a prípona súboru:
#!bin/bash
cesta k súboru = / Domov / aaliyan / bash3.sh
s = ${filepath##*/}
ozvena ' ${s %.*} '
Toto je bash skript, ktorý definuje premennú s názvom „filepath“ a priraďuje jej hodnotu „ /home/aaliyan/bash3.sh “. Skript potom dvakrát použije funkciu rozšírenia parametrov bash na extrahovanie základného názvu súboru bez jeho cesty a prípony. Konkrétne, rozšírenie prvého parametra odstráni cestu z názvu súboru odstránením najdlhšej možnej zhody ľubovoľného počtu znakov, po ktorej nasleduje lomka pomocou „##/“.
Výsledný reťazec „ bash3.sh “ sa potom priradí k premennej s názvom „s“. Rozšírenie druhého parametra odstráni príponu z názvu súboru odstránením najkratšej možnej zhody ľubovoľného počtu znakov, za ktorou nasleduje bodka pomocou „%.“. Výsledný reťazec „bash3“ sa potom vytlačí do konzoly pomocou príkazu echo:
Záver
Extrahovanie základného názvu súboru bez jeho cesty a prípony je bežnou úlohou v bash skriptovaní. Použitím príkazu basename v kombinácii s funkciami nahrádzania parametrov a rozširovania parametrov bash môžeme túto úlohu ľahko dosiahnuť. To môže byť užitočné pri práci s názvami súborov v skriptoch, napríklad pri premenovávaní súborov alebo pri vykonávaní operácií so súbormi s podobnými názvami.