Bash är ett kraftfullt kommandoradsskal som ofta används i Linux- och Unix-operativsystem. En vanlig uppgift när man arbetar med filer i Bash är att extrahera filnamnet och filtillägget från en filsökväg. Den här artikeln kommer att diskutera hur du extraherar filnamnet och filtillägget i Bash och ger exempel på hur du använder dessa värden i dina skript.
Extrahera filnamnet och tillägget i Bash
Det finns flera sätt att extrahera filnamnet och tillägget i Bash, här är tre vanliga metoder:
- Använder kommandot Basename
- Använder parameterexpansion
- Använda IFS-variabeln (Internal Field Separator).
1: Använd kommandot Basename
De basnamn kommandot returnerar filnamnet från en sökväg och extraherar filnamnet och filtillägget. Du kan använda basnamn kommandot med -ändelse alternativet, som tar bort det angivna suffixet från filnamnet som i nedanstående kod:
#!/bin/bash
# Exempel på filsökväg
sökväg = '/sökväg/till/fil.txt'
# Extrahera filnamn
filnamn =$ ( basnamn $file_path )
# Extrahera förlängning
förlängning = ' ${filnamn##*.} '
eko 'Filnamn: $filnamn '
eko 'Förlängning: $förlängning '
2: Använda parameterexpansionen
De parameterexpansion syntax är en kraftfull funktion i Bash som låter dig manipulera strängar. För att extrahera filnamnet och filtillägget med parameterexpansion kan du använda ${parameter##word} syntax, som tar bort den längsta matchningen av det angivna mönstret från början av parametern som i koden nedan:
#!/bin/bash# Exempel på filsökväg
sökväg = '/sökväg/till/fil.txt'
# Extrahera filnamn
filnamn = ' ${file_path##*/} '
# Extrahera förlängning
förlängning = ' ${filnamn##*.} '
eko 'Filnamn: $filnamn '
eko 'Förlängning: $förlängning '
3: Använda IFS-variabeln (Internal Field Separator).
De IFS-variabel används av Bash för att dela upp strängar i fält genom att ställa in IFS-variabel till sökvägsavgränsaren ('/'). Du kan extrahera filnamnet och filtillägget från en filsökväg genom denna variabel med hjälp av nedanstående kod:
#!/bin/bash# Exempel på filsökväg
sökväg = '/sökväg/till/fil.txt'
# Ställ in IFS på '/'
IFS = '/' läsa -r -a delar <<< ' $file_path '
# Extrahera filnamn
filnamn = ' ${parts[-1]} '
# Extrahera förlängning
förlängning = ' ${filnamn##*.} '
eko 'Filnamn: $filnamn '
eko 'Förlängning: $förlängning '
Slutsats
Att extrahera filnamnet och filtillägget från en filsökväg är en vanlig uppgift när man arbetar med filer i Bash. Den här artikeln diskuterade tre vanliga metoder för att extrahera filnamnet och tillägget i Bash. Genom att använda basnamn kommando, den parameterexpansion syntax eller IFS-variabel , kan du snabbt och enkelt extrahera filnamn och tilläggsvärden från en filsökväg.