Bash je výkonný shell príkazového riadka, ktorý sa bežne používa v operačných systémoch Linux a Unix. Jednou z bežných úloh pri práci so súbormi v Bash je extrahovať názov súboru a príponu z cesty k súboru. Tento článok bude diskutovať o tom, ako extrahovať názov súboru a príponu v Bash, a poskytne príklady použitia týchto hodnôt vo vašich skriptoch.
Extrahovanie názvu súboru a prípony v Bash
Existuje niekoľko spôsobov, ako extrahovať názov súboru a príponu v Bash, tu sú tri bežné metódy:
- Použitie príkazu Basename
- Použitie rozšírenia parametrov
- Použitie premennej IFS (Internal Field Separator).
1: Použitie príkazu Basename
The základné meno príkaz vráti názov súboru z cesty k súboru a extrahuje názov súboru a príponu. Môžete použiť základné meno príkaz s – prípona možnosť, ktorá odstráni zadanú príponu z názvu súboru ako v nižšie uvedenom kóde:
#!/bin/bash
# Príklad cesty k súboru
cesta k súboru = '/cesta/k/suboru.txt'
# Extrahujte názov súboru
názov súboru = $ ( základné meno $file_path )
# Rozšírenie extraktu
rozšírenie = ' ${filename##*.} '
ozvena 'Názov súboru: $filename '
ozvena 'Rozšírenie: $predĺženie '
2: Použitie rozšírenia parametrov
The rozšírenie parametrov syntax je výkonná funkcia Bash, ktorá vám umožňuje manipulovať s reťazcami. Ak chcete extrahovať názov súboru a príponu pomocou rozšírenia parametrov, môžete použiť ${parameter##word} syntax, ktorá odstráni najdlhšiu zhodu zadaného vzoru zo začiatku parametra ako v kóde nižšie:
#!/bin/bash# Príklad cesty k súboru
cesta k súboru = '/cesta/k/suboru.txt'
# Extrahujte názov súboru
názov súboru = ' ${file_path##*/} '
# Rozšírenie extraktu
rozšírenie = ' ${filename##*.} '
ozvena 'Názov súboru: $filename '
ozvena 'Rozšírenie: $predĺženie '
3: Použitie premennej IFS (Internal Field Separator).
The IFS premenná používa Bash na rozdelenie reťazcov do polí nastavením IFS premenná na oddeľovač cesty („/“). Názov súboru a príponu môžete extrahovať z cesty k súboru cez túto premennú pomocou nižšie uvedeného kódu:
#!/bin/bash# Príklad cesty k súboru
cesta k súboru = '/cesta/k/suboru.txt'
# Nastavte IFS na '/'
IFS = '/' čítať -r -a časti <<< ' $file_path '
# Extrahujte názov súboru
názov súboru = ' ${parts[-1]} '
# Rozšírenie extraktu
rozšírenie = ' ${filename##*.} '
ozvena 'Názov súboru: $filename '
ozvena 'Rozšírenie: $predĺženie '
Záver
Extrahovanie názvu súboru a prípony z cesty k súboru je bežnou úlohou pri práci so súbormi v Bash. Tento článok diskutoval o troch bežných metódach extrakcie názvu súboru a prípony v Bash. Pomocou základné meno príkaz, rozšírenie parametrov syntax, alebo IFS premenná môžete rýchlo a jednoducho extrahovať názov súboru a hodnoty prípony z cesty k súboru.