Pakk ut filbasenavn uten sti og utvidelse i bash
For å trekke ut basenavnet til en fil uten dens bane og utvidelse, kan vi bruke basename -kommandoen i forbindelse med parameterstatningsfunksjonen til bash. Basename -kommandoen returnerer den siste komponenten i et banenavn, som i vårt tilfelle ville være filnavnet med utvidelsen. Imidlertid, ved å spesifisere suffiksalternativet, kan vi fjerne utvidelsen fra filnavnet, her er et eksempel på bashode:
#!BIN/BASH
filepath =/home/aaliyan/bash3.sh
s = $ (basename $ filepath)
ekko "$ s%.* "
Ovennevnte bashskript definerer en variabel kalt “filepat”Og tildeler den banen til filen“/Hjem/Aaliyan/Bash3.sh“. Skriptet bruker deretter basename -kommandoen for å trekke ut basenavnet til filen fra filstien og tildeler resultatet til en variabel kalt “S”.
Den andre parameterutvidelsen fjerner utvidelsen fra filnavnet ved å fjerne den kortest mulige kampen for et hvilket som helst antall tegn etterfulgt av en prikk ved å bruke “%.*”. Den resulterende strengen, “Bash3”, skrives deretter ut til konsollen ved hjelp av Echo -kommandoen:
En annen måte å trekke ut basenavnet til en fil uten filbanen og utvidelsen er ved å bruke parameterutvidelsen som er uten å bruke basename -kommandoen, nedenfor er eksemplet Bash -koden som bruker parameterutvidelsesmetoden for å få basename på en fil uten fil Sti og filtyvning:
#!BIN/BASH
filepath =/home/aaliyan/bash3.sh
s = $ filePath ##*/
ekko "$ s%.* "
Dette er et bashskript som definerer en variabel kalt “FilePath” og tildeler det verdien ”/Hjem/Aaliyan/Bash3.sh“. Skriptet bruker deretter parameterutvidelsesfunksjonen til Bash to ganger for å trekke ut basenavnet til filen uten banen og utvidelsen. Spesifikt fjerner den første parameterutvidelsen banen fra filnavnet ved å fjerne den lengste mulige kampen til et antall tegn etterfulgt av en fremoverskår ved å bruke "##/".
Den resulterende strengen, “BASH3.sh”Blir deretter tildelt en variabel kalt“ S ”. Den andre parameterutvidelsen fjerner utvidelsen fra filnavnet ved å fjerne den kortest mulige kampen for et hvilket som helst antall tegn etterfulgt av en prikk ved å bruke “%.”. Den resulterende strengen, “Bash3”, skrives deretter ut til konsollen ved hjelp av Echo -kommandoen:
Konklusjon
Å trekke ut basenavnet til en fil uten sin vei og utvidelse er en vanlig oppgave i bash -skripting. Ved å bruke basename -kommandoen i kombinasjon med parametersubstitusjon og parameterutvidelsesfunksjoner i bash, kan vi enkelt oppnå denne oppgaven. Dette kan være nyttig når du jobber med filnavn i skript, for eksempel når du gir nytt navn til filer eller utfører operasjoner på filer med lignende navn.