Awk

A tabulátorral tagolt fájl elemzése az 'awk' használatával

A tabulátorral tagolt fájl elemzése az 'awk' használatával

A 'tab' elválasztóként használatos a tabulátorral elválasztott fájlban. Ez a típusú szövegfájl különféle típusú szöveges adatok strukturált formátumban történő tárolására jön létre.  Különböző típusú parancsok léteznek a Linuxban az ilyen típusú fájlok elemzéséhez.  Az 'awk' parancs a tabulátorral elválasztott fájl különböző módon történő elemzésének egyik módja. Az 'awk' parancs használata a tabulátorral elválasztott fájl elolvasásához megmutatkozott ebben az oktatóanyagban.

Hozzon létre egy tabulátorral tagolt fájlt:

Hozzon létre egy szöveges fájlt felhasználók.txt a következő tartalommal tesztelheti az oktatóanyag parancsait. Ez a fájl tartalmazza a felhasználó nevét, e-mail címét, felhasználónevét és jelszavát.

felhasználók.txt

Név E-mail Felhasználónév Jelszó
Md. Robin [e-mail védett] robin89 563425
Nila Hasan [e-mail védett] nila78 245667
Mirza Abbas [e-mail védett] mirza23 534788
Aornob Hasan [e-mail védett] arnob45 778473
Nuhas Ahsan [e-mail védett] nuhas34 563452

1. példa: Nyomja meg a tabulátorral elválasztott fájl második oszlopát az -F kapcsolóval

A következő „sed” parancs kinyomtatja a tabulátorral elválasztott szövegfájl második oszlopát. Itt a „-F” opció a fájl mezőelválasztójának meghatározására szolgál.

$ macska felhasználók.txt
$ awk -F '\ t' 'print $ 2' felhasználók.txt

A parancsok futtatása után a következő kimenet jelenik meg. A fájl második oszlopa a felhasználó e-mail címeit tartalmazza, amelyek kimenetként jelennek meg.

2. példa: Nyomja meg a tabulátorral elválasztott fájl első oszlopát az FS változó segítségével

A következő 'sed' parancs kinyomtatja a tabulátorral elválasztott szövegfájl első oszlopát. Itt, FS (Field Separator) változó a fájl mezőelválasztójának meghatározására szolgál.

$ macska felhasználók.txt
$ awk 'print $ 1' FS = '\ t' felhasználók.txt

A parancsok futtatása után a következő kimenet jelenik meg. A fájl első oszlopa a felhasználó nevét tartalmazza, amelyek kimenetként jelennek meg.

3. példa: A tabulátorral elválasztott fájl harmadik oszlopának nyomtatása formázással

A következő „sed” parancs kinyomtatja a tabulátorral elválasztott szövegfájl harmadik oszlopát formázással a FS változó és printf. Itt a FS változó a fájl mezőelválasztójának meghatározására szolgál.

$ macska felhasználók.txt
$ awk 'BEGIN FS = "\ t" printf "% 10s \ n", $ 3' felhasználó.txt

A parancsok futtatása után a következő kimenet jelenik meg. A fájl harmadik oszlopa tartalmazza az itt kinyomtatott felhasználónevet.

4. példa: Nyomja meg a tabulátorral elválasztott fájl harmadik és negyedik oszlopát az OFS használatával

Az OFS (Output Field Separator) mezőelválasztó hozzáadására szolgál a kimenetbe. A következő 'awk' parancs felosztja a fájl tartalmát a tab (\ t) elválasztó alapján, és kinyomtatja a 3. és 4. oszlopot a tab (\ t) elválasztóként.

$ macska felhasználók.txt
$ awk -F "\ t" 'OFS = "\ t" print $ 3, $ 4> ("output.txt ") 'felhasználók.txt
$ cat output.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg. A 3. és 4. oszlop tartalmazza a felhasználónevet és a jelszót, amelyeket itt kinyomtattak.

5. példa: Helyezze be a tabulátorral elválasztott fájl adott tartalmát

A sub () függvényt az 'awk-ban használják a helyettesítés parancsára. A következő 'awk' parancs a 45-ös számra keres, és helyettesíti a 90-es számmal, ha a keresési szám létezik a fájlban. A helyettesítés után a fájl tartalma a kimenetben lesz tárolva.txt fájl.

$ macska felhasználók.txt
$ awk -F "\ t" 'sub (/ 45 /, 90); print' felhasználók.txt> output.txt
$ cat output.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg. A kimenet.A txt fájl a módosított tartalmat mutatja a helyettesítés alkalmazása után. Itt az 5. sor tartalma módosult, és az „arnob45” kifejezés „arnob90” -re változott.

6. példa: Karakterlánc hozzáadása a tabulátorral elválasztott fájl minden sorához

A következőkben az 'awk' parancs, az '-F' opciót használjuk a fájl tartalmának felosztására a fül alapján (\ t). Az OFS vesszőt (,) használt mezőelválasztóként a kimenetbe. A sub () függvény a '- →' karakterlánc hozzáadására szolgál a kimenet minden sorának elején.

$ macska felhasználók.txt
$ awk -F "\ t" 'OFS = ","; sub (/ ^ /, "---->"); print $ 1, $ 2, $ 3' felhasználók nyomtatása.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg. Minden mezőértéket vesszővel (,) választunk el, és minden sor elején egy karakterláncot adunk hozzá.

7. példa: Helyezze el a tabulátorral elválasztott fájl értékét a gsub () függvény használatával

A gsub () függvény az 'awk' parancsban használatos a globális helyettesítéshez. A fájl minden karakterlánc-értéke felváltja a keresési minta egyezését. A sub () és a gsub () függvények közötti fő különbség az, hogy a sub () függvény leállítja a helyettesítési feladatot az első egyezés megtalálása után, a gsub () függvény pedig a fájl végén található mintát keresi helyettesítésre. A következő 'awk' parancs a fájlban az 'nila' és 'Mira' szavakat keresi, és minden előfordulást az 'Invalid Name' szöveggel helyettesít, ahol a kereső szó egyezik.

$ macska felhasználók.txt
$ awk -F '\ t' 'gsub (/ nila | Mira /, "Érvénytelen név"); print 'felhasználók.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg. A „nila” szó kétszer létezik a fájl 3. sorában, amelyet a kimenet „Invalid Name” szóval cserélt.

8. példa: A formázott tartalom nyomtatása tabulátorral elválasztott fájlból

A következő 'awk' parancs a fájl első és második oszlopát formázással nyomtatja ki a printf használatával. A kimenet a felhasználó nevét mutatja azáltal, hogy zárójelbe foglalja az e-mail címet.

$ macska felhasználók.txt
$ awk -F '\ t' 'printf "% s (% s) \ n", $ 1, $ 2' felhasználó.txt

A fenti parancsok futtatása után a következő kimenet jelenik meg.

Következtetés

Bármely tabulátorral elválasztott fájl könnyen elemezhető és kinyomtatható másik határolóval az 'awk' paranccsal. A tabulátorral elválasztott fájlok elemzésének és a különböző formátumokban történő nyomtatás módjait ebben az oktatóanyagban mutatjuk be több példa felhasználásával. Ebben az oktatóanyagban bemutatjuk az sub () és a gsub () függvények használatát is az 'awk' parancsban a tabulátorral tagolt fájl tartalmának helyettesítésére. Remélem, hogy ez az oktatóanyag segít az olvasóknak a tabulátorral elválasztott fájl egyszerű elemzésében, miután megfelelően gyakorolták az oktatóanyag példáit.

Az egérmutató és a kurzor méretének, színének és sémájának módosítása a Windows 10 rendszeren
Az egérmutató és a kurzor a Windows 10 operációs rendszerben nagyon fontos szempont. Ez elmondható más operációs rendszerekről is, tehát valójában eze...
Ingyenes és nyílt forráskódú játékmotorok a Linux játékok fejlesztéséhez
Ez a cikk felsorolja azokat az ingyenes és nyílt forráskódú játékmotorokat, amelyek felhasználhatók 2D és 3D játékok fejlesztésére Linuxon. Számos ily...
Shadow of the Tomb Raider for Linux Tutorial
A Shadow of the Tomb Raider a Tomb Raider sorozat tizenkettedik kiegészítője - az Eidos Montreal által létrehozott akció-kaland játék franchise. A ját...