Ako extrahovať základné meno súboru bez cesty a rozšírenia v Bash

Ako Extrahovat Zakladne Meno Suboru Bez Cesty A Rozsirenia V Bash



Príkaz basename sa bežne používa v Bash na získanie základného názvu súboru alebo adresára z danej cesty odstránením všetkých hlavných komponentov adresára. Tento článok preskúma, ako extrahovať základný názov súboru bez jeho cesty a prípony pomocou bash.

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/bash
cesta 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.