Sådan udpakkes filnavn og udvidelse i Bash

Sadan Udpakkes Filnavn Og Udvidelse I Bash



Bash er en kraftfuld kommandolinjeskal, der almindeligvis bruges i Linux- og Unix-operativsystemer. En almindelig opgave, når du arbejder med filer i Bash, er at udtrække filnavnet og filtypenavnet fra en filsti. Denne artikel vil diskutere, hvordan du udtrækker filnavnet og filtypenavnet i Bash og giver eksempler på, hvordan du bruger disse værdier i dine scripts.

Udpakning af filnavn og udvidelse i Bash

Der er flere måder at udtrække filnavnet og udvidelsen i Bash, her er tre almindelige metoder:







1: Brug af kommandoen Basename

Det basenavn kommandoen returnerer filnavnet fra en filsti og udpakker filnavnet og filtypenavnet. Du kan bruge basenavn kommando med -suffiks option, som fjerner det angivne suffiks fra filnavnet som i nedenstående kode:



#!/bin/bash
# Eksempel på filsti
fil_sti = '/sti/til/fil.txt'

# Udpak filnavn
filnavn =$ ( basenavn $fil_sti )

# Uddrag udvidelse
udvidelse = ' ${filnavn##*.} '

ekko 'Filnavn: $filnavn '
ekko 'Udvidelse: $udvidelse '







2: Brug af parameterudvidelsen

Det parameterudvidelse syntaks er en kraftfuld funktion i Bash, der giver dig mulighed for at manipulere strenge. For at udtrække filnavnet og filtypenavnet ved hjælp af parameterudvidelse, kan du bruge ${parameter##word} syntaks, som fjerner det længste match af det angivne mønster fra begyndelsen af ​​parameteren som i koden nedenfor:

#!/bin/bash
# Eksempel på filsti
fil_sti = '/sti/til/fil.txt'
# Udpak filnavn
filnavn = ' ${file_path##*/} '
# Uddrag udvidelse
udvidelse = ' ${filnavn##*.} '
ekko 'Filnavn: $filnavn '
ekko 'Udvidelse: $udvidelse '



3: Brug af IFS-variablen (Internal Field Separator).

Det IFS variabel bruges af Bash til at opdele strenge i felter ved at indstille IFS variabel til stiadskilleren ('/'). Du kan udtrække filnavnet og filtypenavnet fra en filsti gennem denne variabel ved at bruge nedenstående kode:

#!/bin/bash
# Eksempel på filsti
fil_sti = '/sti/til/fil.txt'
# Indstil IFS til '/'
IFS = '/' Læs -r -en dele <<< ' $fil_sti '

# Udpak filnavn
filnavn = ' ${parts[-1]} '
# Uddrag udvidelse
udvidelse = ' ${filnavn##*.} '
ekko 'Filnavn: $filnavn '
ekko 'Udvidelse: $udvidelse '

Konklusion

Udpakning af filnavn og filtypenavn fra en filsti er en almindelig opgave, når du arbejder med filer i Bash. Denne artikel diskuterede tre almindelige metoder til at udtrække filnavnet og udvidelsen i Bash. Ved at bruge basenavn kommando, den parameterudvidelse syntaks eller IFS variabel , kan du hurtigt og nemt udtrække filnavnet og filtypenavnet fra en filsti.