Hvordan trekke ut filnavn og utvidelse i Bash

Hvordan Trekke Ut Filnavn Og Utvidelse I Bash



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.