Kuidas Bashis faili baasnime välja võtta ilma tee ja laiendita

Kuidas Bashis Faili Baasnime Valja Votta Ilma Tee Ja Laiendita



Bashis kasutatakse tavaliselt käsku basename faili või kataloogi põhinime toomiseks antud teelt, eemaldades kõik juhtivad kataloogikomponendid. Selles artiklis uuritakse, kuidas bashi abil ekstraktida faili põhinimi ilma selle tee ja laiendita.

Ekstraktige Bashis faili alusnimi ilma tee ja laiendita

Faili põhinime eraldamiseks ilma selle tee ja laiendita saame kasutada käsku basename koos bashi parameetrite asendamise funktsiooniga. Käsk basename tagastab teenime viimase komponendi, mis meie puhul oleks failinimi koos laiendiga. Sufiksi suvandi määramisel saame aga failinimest laienduse eemaldada, siin on bash-koodi näide:

#!bin/bash
faili teekond = / Kodu / aaliyan / bash3.sh
s =$ ( baasnimi $ failitee )
kaja ' ${s%.*} '

Ülaltoodud bash-skript määratleb muutuja nimega ' faili teekond ja määrab sellele faili tee /home/aaliyan/bash3.sh “. Seejärel kasutab skript käsku basename, et eraldada faili teest faili põhinimi ja omistab tulemuse muutujale nimega 's'.







Teise parameetri laiendus eemaldab failinimest laienduse, eemaldades võimalikult lühikese vaste mis tahes arvust tähemärkidest, millele järgneb punkt, kasutades '%.*'. Saadud string 'bash3' prinditakse seejärel konsooli, kasutades käsku echo:





Teine viis faili põhinime eraldamiseks ilma selle failitee ja laiendita on kasutada parameetrilaiendust, mis on ilma käsku basename kasutamata, allpool on näide bash-koodist, mis kasutab parameetrite laiendamise meetodit ilma failita faili põhinime saamiseks tee ja faililaiend:





#!bin/bash
faili teekond = / Kodu / aaliyan / bash3.sh
s = ${filepath##*/}
kaja ' ${s%.*} '

See on bash-skript, mis määratleb muutuja nimega 'filepath' ja annab sellele väärtuse ' /home/aaliyan/bash3.sh “. Seejärel kasutab skript kaks korda bashi parameetrilaiendusfunktsiooni, et eraldada faili põhinimi ilma selle tee ja laiendita. Täpsemalt, esimene parameetrilaiendus eemaldab failinimest tee, eemaldades pikima võimaliku vaste mis tahes arvust tähemärkidest, millele järgneb kaldkriips, kasutades '##/'.

Saadud string ' bash3.sh ” määratakse seejärel muutujale nimega „s”. Teise parameetri laiendus eemaldab failinimest laienduse, eemaldades võimalikult lühikese vaste mis tahes arvust tähemärkidest, millele järgneb punkt, kasutades '%.'. Saadud string 'bash3' prinditakse seejärel konsooli, kasutades käsku echo:



Järeldus

Faili põhinime lahtipakkimine ilma selle tee ja laiendita on bash-skriptimisel tavaline ülesanne. Kasutades käsku basename koos bashi parameetrite asendamise ja parameetrite laiendamise funktsioonidega, saame selle ülesande hõlpsalt täita. See võib olla kasulik skriptides failinimedega töötamisel, näiteks failide ümbernimetamisel või sarnaste nimedega failidega toimingute tegemisel.