Fájlnév olvasása kiterjesztés nélkül a Bash -ban

Read Filename Without Extension Bash



A Linux felhasználóknak számos célból rendszeresen dolgozniuk kell a fájlokkal. Néha a felhasználóknak csak a fájlkiterjesztés eltávolításával kell elolvasniuk a fájl alapnevét. A fájlnév és a kiterjesztés többféle módon is elválasztható és tárolható különböző változókban Linuxon. A Bash beépített parancs és a shell paraméter kibővítése használható a fájl kiterjesztésének eltávolítására. Ebben a bemutatóban ismertetjük, hogy a kiterjesztés nélküli fájlnév hogyan olvasható a fent említett módszerekkel.

A 'basename' paranccsal olvassa el a fájlnevet

A 'basename' parancs a fájlnév kiterjesztés nélküli olvasására szolgál egy könyvtárból vagy fájl elérési útjából.





Szintaxis:



alapnévNÉV[SUFFIX]

vagy



alapnévOPCIÓ ... NAME ...

Itt a NAME tartalmazhatja a fájlnevet vagy a teljes elérési utat tartalmazó fájlnevet. A SUFFIX opcionális, és tartalmazza a felhasználó által eltávolítani kívánt fájlkiterjesztési részt. A 'basename' parancs néhány opciót tartalmaz, amelyeket az alábbiakban ismertetünk.





Lehetőségek

Név Leírás
-nak nek Több fájlnév átadására szolgál elérési útvonallal vagy útvonal nélkül parancs argumentumként.
-s Arra szolgál, hogy a kiterjesztést utótagként adja át, amelyet el kell távolítani.
-Val vel A több fájlnév megjelenítésére szolgál, minden fájlt nullával elválasztva.
-Segítség A 'basename' parancs használatával kapcsolatos információk megjelenítésére szolgál.
-változat A verzióinformációk megjelenítésére szolgál.

1. példa: A NAME és a SUFFIX használata

A következő 'basename' parancs lekéri a kiterjesztésű fájlnevet. A SUFFIX ki van hagyva ebből a parancsból. Itt a kimenet „Product.txt” .



$alapnév /itthon/fahmida/kód/product.txt

Ha kiterjesztés nélkül szeretné lekérni a fájlnevet, akkor a fájlkiterjesztést SUFFIX -ként kell megadnia a 'basename' paranccsal. Itt a kiterjesztés .txt. Futtassa a következő parancsot a kiterjesztés eltávolításához a fájlból.

$alapnév /itthon/fahmida/kód/product.txt .txt

2. példa: Az „-a” opció és a NAME használata

Ebben a példában a 'basename' parancs '-a' opciójának használata látható. Itt két fájl elérési útja kerül átadásra argumentumként a 'basename' paranccsal. Minden kiterjesztésű fájlnév lekérésre kerül az útvonalból, és új sorban nyomtatódik.

$alapnév -nak nek /itthon/fahmida/index.html/itthon/fahmida/kód/emp.txt

3. példa: A „-z” opció és a NAME használata

A '-z' opciót a 'basename' paranccsal használjuk a több fájlnév null értékű nyomtatására az újsor helyett. A következő parancs két lehetőséget használ együtt: „-a” és „-z”. Itt két fájlnév, index.html és emp.txt szóköz és új sor nélkül nyomtat.

$alapnév -az /itthon/fahmida/index.html/itthon/fahmida/kód/emp.txt

4. példa: Az „-s” opció és a NAME használata

A következő parancs használható a 'basename' nevű SUFFIX alternatívájaként. A fájlkiterjesztésnek át kell esnie a „-sh” opcióval, hogy eltávolítsa a fájlkiterjesztést a fájlból. A következő példa eltávolítja a „-sh” kiterjesztést a fájlból, „add.sh”.

$alapnév -s.sh kiegészítés.sh

5. példa: Távolítsa el a fájlkiterjesztést SUFFIX nélkül

Ha nem ismeri a fájlnévből eltávolítani kívánt fájl kiterjesztését, akkor ez a példa segít a probléma megoldásában. Hozzon létre egy nevű fájlt read_file.sh a következő kóddal a kiterjesztés fájlnevének lekéréséhez. Ebben a példában a `sed` parancsot használjuk bármilyen típusú kiterjesztés eltávolítására a fájlnévből. Ha futtatja a szkriptet, a kimenet „ átlagos 'A kiterjesztés eltávolítása után' py '.

read_file.sh

#!/bin/bash
# Állítsa be a fájlnevet az elérési útvonallal
fájl név='/home/fahmida/code/average.py'
# Olvassa el a fájlnevet kiterjesztés nélkül a „basname” és a „sed” paranccsal
kidobta '$ (alapnév '$ fájlnév' | sed 's/ (.*) ..*/ 1/')'

Futtassa a szkriptet.

$bashread_file.sh

6. példa: A fájlkiterjesztés konvertálása txt-ből docx-be

A kiterjesztés nélküli fájlnévnek át kell alakítania a fájlt egyik kiterjesztésről a másikra. Ez a példa azt mutatja, hogy hogyan módosíthatja az összes szöveges fájl (.txt) kiterjesztését a word fájlokká (.docx) a bash scriptben található 'basename' paranccsal. Hozzon létre egy fájlt, convert_file.sh a következő kóddal. Itt egy for-in ciklus használható az összes szöveges fájl olvasására .txt kiterjesztés az aktuális könyvtárból. A kiterjesztés nélküli fájlnevet a 'basename' parancs olvassa be, és a .docx kiterjesztés hozzáadásával a ciklus minden iterációjában átnevezi.

convert_file.sh

#!/bin/bash
# a ciklus minden szövegfájlt kiolvas az aktuális könyvtárból
számárafájl névban ben ``ls *.txt``
tedd
# Nyomtassa ki a szöveges fájlnevet az átalakítás előtt
kidobta 'Fájlnév konvertálás előtt:$ fájlnév'
# Módosítsa a txt fájl kiterjesztését docx -re
mv - '$ fájlnév' '$ (basename - '$ fájlnév' .txt).docx '
Kész

Futtassa a szkriptet.

$bashconvert_file.sh

Az 'ls' paranccsal ellenőrizze, hogy a szövegfájlok konvertálva vannak -e vagy sem.

$ls

7. példa: A fájlnév kiterjesztés nélküli olvasása Shell paraméterbővítéssel

A Shell paraméterbővítés egy másik módja annak, hogy a fájlnevet kiterjesztés nélkül olvassa el a bash -ban. Ez a példa a shell paraméterbővítés felhasználását mutatja be. A következő parancs tárolja a fájl elérési útját a $ változóban fájl név .

$fájl név='/var/usr/temp/myfile.tar.gz'

A következő parancs eltávolítja az összes bővítményt az útvonalból, és tárolja a fájl útvonalát kiterjesztés nélkül a változóban, $ fájl1 .

$fájl1='$ {fájlnév %%.*}'

A következő parancs csak a fájlból nyomtatja ki a fájlnevet. Itt a kimenet ' fájlom '.

$kidobta '$ {file1 ##*/}'

Ha a fájlnév két, kétpontos (.) Kiterjesztést tartalmaz, és a fájl utolsó kiterjesztésének eltávolításával szeretné elolvasni a fájlnevet, akkor a következő parancsot kell használnia. Futtassa a következő parancsot, amely tárolja a fájl elérési útját a változóba, $ fájl2 a fájl utolsó kiterjesztésének eltávolításával.

$fájl2='$ {fájlnév%.*}'

Most futtassa a következő parancsot a fájlnév egypontos (.) Kiterjesztéssel történő nyomtatásához. Itt a kimenet lesz myfile.tar.

$kidobta '$ {file2 ## * /}'

Következtetés

A kiterjesztés nélküli fájlnév különböző célokra szükséges. A kiterjesztés nélküli fájlnév néhány használatát ebben az oktatóanyagban néhány példával, például fájlkonvertálással ismertetjük. Ez az oktatóanyag segítséget nyújt azoknak a felhasználóknak, akiket érdekel, hogy megtanulják, hogyan lehet elválasztani a fájlnevet és a kiterjesztést a fájl elérési útjától. Itt két módszert ismertetünk. A felhasználó az alábbi módszerek bármelyikét követve csak a fájl elérési útjából vonhatja ki a fájlnevet.