Hur man extraherar filnamn och filtillägg i Bash

Hur Man Extraherar Filnamn Och Filtillagg I Bash



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:







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.