Jak extrahovat základní název souboru bez cesty a přípony v Bash

Jak Extrahovat Zakladni Nazev Souboru Bez Cesty A Pripony V Bash



Příkaz basename se běžně používá v Bash k načtení základního názvu souboru nebo adresáře z dané cesty odstraněním všech hlavních složek adresáře. Tento článek prozkoumá, jak extrahovat základní název souboru bez jeho cesty a přípony pomocí bash.

Extrahujte základní název souboru bez cesty a přípony v Bash

Chcete-li extrahovat základní název souboru bez jeho cesty a přípony, můžeme použít příkaz basename ve spojení s funkcí substituce parametrů bash. Příkaz basename vrací poslední komponent cesty, což by v našem případě bylo jméno souboru s jeho příponou. Zadáním možnosti přípony však můžeme odstranit příponu z názvu souboru, zde je příklad bash kódu:

#!bin/bash
cesta k souboru = / Domov / aaliyan / bash3.sh
s = $ ( základní jméno $filepath )
echo ' ${s %.*} '

Výše uvedený bash skript definuje proměnnou s názvem „ cesta k souboru “ a přiřadí mu cestu k souboru “ /home/aaliyan/bash3.sh “. Skript pak pomocí příkazu basename extrahuje základní název souboru z cesty k souboru a přiřadí výsledek proměnné nazvané „s“.







Druhé rozšíření parametru odstraní příponu z názvu souboru odstraněním nejkratší možné shody libovolného počtu znaků následované tečkou pomocí „%.*“. Výsledný řetězec „bash3“ je poté vytištěn do konzole pomocí příkazu echo:





Dalším způsobem, jak extrahovat základní název souboru bez jeho cesty k souboru a přípony, je použití rozšíření parametru, které je bez použití příkazu basename, níže je ukázkový kód bash, který používá metodu rozšíření parametrů k získání základního názvu souboru bez souboru. cesta a přípona souboru:





#!bin/bash
cesta k souboru = / Domov / aaliyan / bash3.sh
s = ${filepath##*/}
echo ' ${s %.*} '

Toto je bash skript, který definuje proměnnou nazvanou „filepath“ a přiřadí jí hodnotu „ /home/aaliyan/bash3.sh “. Skript pak dvakrát použije funkci rozšíření parametrů bash k extrahování základního názvu souboru bez jeho cesty a přípony. Konkrétně první rozšíření parametru odstraní cestu z názvu souboru odstraněním nejdelší možné shody libovolného počtu znaků následované lomítkem pomocí „##/“.

Výsledný řetězec „ bash3.sh “ je pak přiřazena proměnné nazvané “s”. Druhé rozšíření parametru odstraní příponu z názvu souboru odstraněním nejkratší možné shody libovolného počtu znaků následované tečkou pomocí „%.“. Výsledný řetězec „bash3“ je poté vytištěn do konzole pomocí příkazu echo:



Závěr

Extrahování základního názvu souboru bez jeho cesty a přípony je běžný úkol ve skriptování bash. Použitím příkazu basename v kombinaci s funkcemi substituce parametrů a rozšíření parametrů bash můžeme tohoto úkolu snadno dosáhnout. To může být užitečné při práci s názvy souborů ve skriptech, například při přejmenovávání souborů nebo provádění operací se soubory s podobnými názvy.