Hvordan trekke ut filbasenavn uten bane og utvidelse i Bash

Hvordan Trekke Ut Filbasenavn Uten Bane Og Utvidelse I Bash



Basename-kommandoen brukes ofte i Bash for å hente basisnavnet til en fil eller katalog fra en gitt bane ved å fjerne eventuelle ledende katalogkomponenter. Denne artikkelen vil utforske hvordan du trekker ut basisnavnet til en fil uten dens bane og utvidelse ved å bruke bash.

Pakk ut filbasenavn uten bane og utvidelse i Bash

For å trekke ut basenavnet til en fil uten dens bane og utvidelse, kan vi bruke basename-kommandoen sammen med parametersubstitusjonsfunksjonen til bash. Basename-kommandoen returnerer den siste komponenten i et banenavn, som i vårt tilfelle vil være filnavnet med filtypen. Ved å spesifisere suffiksalternativet kan vi imidlertid fjerne filtypen fra filnavnet, her er et eksempel på en bash-kode:

#!bin/bash
filbane = / hjem / aaliyan / bash3.sh
s =$ ( basenavn $filbane )
ekko ' ${s%.*} '

Bash-skriptet ovenfor definerer en variabel kalt ' filbane ' og tildeler den banen til filen ' /home/aaliyan/bash3.sh '. Skriptet bruker deretter kommandoen basename for å trekke ut basisnavnet til filen fra filbanen og tilordner resultatet til en variabel kalt 's'.







Den andre parameterutvidelsen fjerner filtypen fra filnavnet ved å fjerne kortest mulig samsvar av et hvilket som helst antall tegn etterfulgt av en prikk ved å bruke '%.*'. Den resulterende strengen, 'bash3', skrives deretter ut til konsollen ved å bruke ekkokommandoen:





En annen måte å trekke ut basenavnet til en fil uten dens filbane og utvidelse er ved å bruke parameterutvidelsen som er uten å bruke kommandoen basename, nedenfor er eksempelet bash-koden som bruker parameterutvidelsesmetoden for å få basenavnet til en fil uten fil bane og filtype:





#!bin/bash
filbane = / hjem / aaliyan / bash3.sh
s = ${filepath##*/}
ekko ' ${s%.*} '

Dette er et bash-skript som definerer en variabel kalt 'filbane' og tildeler den verdien ' /home/aaliyan/bash3.sh '. Skriptet bruker deretter parameterutvidelsesfunksjonen til bash to ganger for å trekke ut basenavnet til filen uten dens bane og utvidelse. Nærmere bestemt fjerner den første parameterutvidelsen banen fra filnavnet ved å fjerne det lengst mulige samsvaret med et hvilket som helst antall tegn etterfulgt av en skråstrek med '##/'.

Den resulterende strengen, ' bash3.sh ” blir deretter tildelt en variabel kalt “s”. Den andre parameterutvidelsen fjerner filtypen fra filnavnet ved å fjerne kortest mulig samsvar av et hvilket som helst antall tegn etterfulgt av en prikk ved å bruke '%.'. Den resulterende strengen, 'bash3', skrives deretter ut til konsollen ved å bruke ekkokommandoen:



Konklusjon

Å pakke ut basenavnet til en fil uten dens bane og utvidelse er en vanlig oppgave i bash-skripting. Ved å bruke kommandoen basename i kombinasjon med funksjonene for parametererstatning og parameterutvidelse til bash, kan vi enkelt oppnå denne oppgaven. Dette kan være nyttig når du arbeider med filnavn i skript, for eksempel når du endrer navn på filer eller utfører operasjoner på filer med lignende navn.