A fájlnév és a kiterjesztés kibontása a Bash-ban

Bevezetés

Számos oka lehet annak, hogy miért szeretné kibontani a fájl nevét és kiterjesztését a Bashban:

  • A fájlnév vagy kiterjesztés módosítása – Előfordulhat, hogy ki szeretné bontani a fájlnevet vagy kiterjesztést annak módosításához, például előtag vagy utótag hozzáadásához a fájlnévhez vagy a fájlkiterjesztés módosításához.

  • Egyedi nevű fájl létrehozása – Előfordulhat, hogy ki szeretné bontani a fájlnevet és a kiterjesztést, hogy új fájlt hozzon létre egyedi névvel, például időbélyeggel vagy véletlen számmal a fájlnévhez.

  • A fájlnév vagy kiterjesztés használata parancsfájlban vagy parancsban – Előfordulhat, hogy ki szeretné bontani a fájlnevet vagy kiterjesztést, hogy argumentumként vagy bemenetként használhassa egy parancsfájlhoz vagy parancshoz, például átadja egy programnak, vagy létrehozzon egy fájlt, amelynek neve megegyezik egy könyvtárral.

  • Információk kinyerése a fájlnévből vagy kiterjesztésből – Előfordulhat, hogy ki szeretné bontani a fájlnevet vagy a kiterjesztést, hogy információkat nyerjen ki belőle, például a dátumot vagy a fájltípust.

Ebben a cikkben megnézzük a három leggyakoribb módszert a fájlnév és a fájlkiterjesztés kibontására a Bashban. Mindegyiket megvizsgáljuk, és bemutatjuk az előnyöket és hátrányokat, hogy megalapozott döntést hozhasson az Ön számára legmegfelelőbb megközelítésről.

1. módszer: A alapnév parancs

A basename paranccsal lehet kivonni a fájl nevét és kiterjesztését egy fájl elérési útjából:

filename=$(basename /path/to/file.txt)
echo $filename

Bár ez a módszer meglehetősen egyszerű és könnyen használható, sajnos nincs mód arra, hogy csak a fájlnevet (kiterjesztés nélkül) kinyerjük utófeldolgozás nélkül.

Ön is használja a dirname parancs a könyvtár elérési útjának külön kibontásához:

directory=$(dirname /path/to/file.txt)
echo $directory

Előnyök:
  • Egyszerű használat
  • Helyesen kezeli a szóközöket tartalmazó fájlneveket
Hátrányok:
  • Csak a fájlnevet bontja ki, a kiterjesztést nem tudja külön kibontani további feldolgozás nélkül

2. módszer: Paraméterbővítés használata

A Bash egy ún paraméterbővítés, amely lehetővé teszi egy változó részeinek kinyerését egy speciális szintaxis segítségével. Használhatja például a következő szintaxist a fájlnév és a kiterjesztés kinyerésére egy változóban tárolt fájl elérési útjából:

filepath="/path/to/file.txt"
filename=${filepath##*/}
echo $filename

A paraméterbővítést is használhatja a kiterjesztés külön kibontásához:

extension=${filename##*.}
echo $extension

Előnyök:
  • Rugalmas
  • Külön-külön ki tudja bontani a fájlnevet és a kiterjesztést,
  • Helyesen kezeli a szóközöket tartalmazó fájlneveket
Hátrányok:
  • Változóra van szükség a fájl elérési útjának tárolásához

3. módszer: A awk parancs

A awk A parancs egy hatékony szövegfeldolgozó eszköz, amellyel egy karakterlánc egyes részeit kinyerhetjük. Használhatja például a következő szintaxist a fájlnév és a kiterjesztés kibontására a fájl elérési útjából:

filepath="/path/to/file.txt"
filename=$(echo $filepath | awk -F/ '{print $NF}')
echo $filename

Tekintse meg gyakorlatias, gyakorlati útmutatónkat a Git tanulásához, amely tartalmazza a bevált gyakorlatokat, az iparág által elfogadott szabványokat és a mellékelt csalólapot. Hagyd abba a guglizást a Git parancsokkal, és valójában tanulni meg!

Ön is használja awk a kiterjesztés külön kibontásához:

extension=$(echo $filename | awk -F. '{print $NF}')
echo $extension

Előnyök:
  • Erős
  • Külön-külön kibonthatja a fájlnevet és a kiterjesztést
  • Helyesen kezeli a szóközöket tartalmazó fájlneveket
Hátrányok:
  • A szintaxis egyes felhasználók számára ismeretlen lehet
  • A fájl elérési útját át kell vezetni awk

Következtetés

Összességében a fájl nevének és kiterjesztésének kibontása a Bash-ban hasznos technika lehet a fájlokkal való munkavégzéshez és különféle feladatok végrehajtásához a Bash-héjban.

Az említett módszerek mindegyikének megvannak a maga előnyei és hátrányai, és a legjobb választás az Ön egyedi igényeitől és preferenciáitól függ. Gyakran hasznos több megközelítést ismerni, így kiválaszthatja a helyzetének leginkább megfelelőt.

Időbélyeg:

Még több Stackabus