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 jobber med filer i bash er å trekke ut filnavnet og utvidelsen fra en filsti. Denne artikkelen vil diskutere hvordan du henter ut filnavnet og utvidelsen i bash og gir eksempler på hvordan du bruker disse verdiene i skriptene dine.

Trekke ut filnavnet og utvidelsen i bash

Det er flere måter å trekke ut filnavnet og utvidelsen i bash, her er tre vanlige metoder:

  • Bruke basename -kommando
  • Ved hjelp av parameterutvidelse
  • Bruker IFS (Internt Field Separator) variabel

1: Bruke basename -kommandoen

De basename Kommando returnerer filnavnet fra en filsti og trekker ut filnavnet og utvidelsen. Du kan bruke basename kommando med -suffiks Alternativ, som fjerner det spesifiserte suffikset fra filnavnet som i den undergitte koden:

#!/bin/bash
# Eksempel på filsti
file_path = "/path/to/file.tekst"
# Trekke ut filnavn
filnavn = $ (basename $ file_path)
# Uttrekkutvidelse
utvidelse = "$ filnavn ##*. "
ekko "filnavn: $ filnavn"
Echo "Extension: $ Extension"

2: Bruke parameterutvidelsen

De Parameterutvidelse Syntaks er et kraftig trekk ved bash som lar deg manipulere strenger. For å trekke ut filnavnet og utvidelsen ved hjelp av parameterutvidelse, kan du bruke $ Parameter ## Word Syntaks, som fjerner den lengste kampen for det spesifiserte mønsteret fra begynnelsen av parameteren som i koden nedenfor:

#!/bin/bash
# Eksempel på filsti
file_path = "/path/to/file.tekst"
# Trekke ut filnavn
filnavn = "$ file_path ##*/"
# Uttrekkutvidelse
utvidelse = "$ filnavn ##*. "
ekko "filnavn: $ filnavn"
Echo "Extension: $ Extension"

3: Bruke IFS (Internt Field Separator) variabel

De IFS variabel brukes av bash for å dele opp strenger i åkrene ved å stille inn IFS variabel til baneseparatoren (“/”). Du kan trekke ut filnavnet og utvidelsen fra en filsti gjennom denne variabelen ved å bruke den undergitte koden:

#!/bin/bash
# Eksempel på filsti
file_path = "/path/to/file.tekst"
# Sett ifs til "/"
Ifs = "/" Les -r -a deler <<< "$file_path"
# Trekke ut filnavn
filnavn = "$ deler [-1]"
# Uttrekkutvidelse
utvidelse = "$ filnavn ##*. "
ekko "filnavn: $ filnavn"
Echo "Extension: $ Extension"

Konklusjon

Å trekke ut filnavnet og utvidelsen fra en filsti er en vanlig oppgave når du jobber med filer i bash. Denne artikkelen diskuterte tre vanlige metoder for å trekke ut filnavnet og utvidelsen i bash. Ved å bruke basename Kommando, The Parameterutvidelse syntaks, eller IFS variabel, Du kan raskt og enkelt trekke ut filnavnet og utvidelsesverdiene fra en filsti.