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/bashcesta 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.