Bash er et kraftig kommandolinjeskall som ofte brukes i Linux- og Unix-operativsystemer. En vanlig oppgave når du arbeider med filer i Bash er å trekke ut filnavnet og filtypen fra en filbane. Denne artikkelen vil diskutere hvordan du trekker ut filnavnet og utvidelsen i Bash og gir eksempler på hvordan du bruker disse verdiene i skriptene dine.
Pakk ut filnavnet og utvidelsen i Bash
Det er flere måter å trekke ut filnavnet og utvidelsen i Bash, her er tre vanlige metoder:
1: Bruke kommandoen Basename
De basenavn kommandoen returnerer filnavnet fra en filbane og trekker ut filnavnet og filtypen. Du kan bruke basenavn kommando med -suffiks alternativet, som fjerner det angitte suffikset fra filnavnet som i koden nedenfor:
#!/bin/bash
# Eksempel på filbane
filbane = '/bane/til/fil.txt'
# Pakk ut filnavn
filnavn =$ ( basenavn $filbane )
# Pakk ut utvidelse
Utvidelse = ' ${filnavn##*.} '
ekko 'Filnavn: $filnavn '
ekko 'Utvidelse: $utvidelse '
2: Bruke parameterutvidelsen
De parameterutvidelse syntaks er en kraftig funksjon i Bash som lar deg manipulere strenger. For å trekke ut filnavnet og utvidelsen ved hjelp av parameterutvidelse, kan du bruke ${parameter##word} syntaks, som fjerner det lengste samsvaret til det spesifiserte mønsteret fra begynnelsen av parameteren som i koden nedenfor:
#!/bin/bash# Eksempel på filbane
filbane = '/bane/til/fil.txt'
# Pakk ut filnavn
filnavn = ' ${file_path##*/} '
# Pakk ut utvidelse
Utvidelse = ' ${filnavn##*.} '
ekko 'Filnavn: $filnavn '
ekko 'Utvidelse: $utvidelse '
3: Bruke IFS-variabelen (Internal Field Separator).
De IFS-variabel brukes av Bash til å dele opp strenger i felt ved å sette IFS-variabel til baneskilleren ('/'). Du kan pakke ut filnavnet og filtypen fra en filbane gjennom denne variabelen ved å bruke koden nedenfor:
#!/bin/bash# Eksempel på filbane
filbane = '/bane/til/fil.txt'
# Sett IFS til '/'
IFS = '/' lese -r -en deler <<< ' $filbane '
# Pakk ut filnavn
filnavn = ' ${deler[-1]} '
# Pakk ut utvidelse
Utvidelse = ' ${filnavn##*.} '
ekko 'Filnavn: $filnavn '
ekko 'Utvidelse: $utvidelse '
Konklusjon
Å trekke ut filnavnet og filtypen fra en filbane er en vanlig oppgave når du arbeider med filer i Bash. Denne artikkelen diskuterte tre vanlige metoder for å trekke ut filnavnet og utvidelsen i Bash. Ved å bruke basenavn kommando, den parameterutvidelse syntaks, eller IFS-variabel , kan du raskt og enkelt trekke ut filnavn og utvidelsesverdier fra en filbane.