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:
- Brug af Basename Command
- Brug af parameterudvidelse
- Brug af IFS-variablen (Internal Field Separator).
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.