Hvordan trekke ut filbasenavn uten sti og utvidelse i bash

Hvordan trekke ut filbasenavn uten sti og utvidelse i bash
Basenavn -kommandoen brukes ofte i bash for å hente basenavnet til en fil eller katalog fra en gitt bane ved å fjerne alle ledende katalogkomponenter. Denne artikkelen vil utforske hvordan du henter ut basenavnet til en fil uten sin vei og utvidelse ved hjelp av bash.

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.