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.