Az 'awk' parancs különféle felhasználási lehetőségeket kínál a Linuxban. Például fel lehet használni egy szöveges fájl tartalmának kinyomtatására. A sok szöveges fájl első sora tartalmazza a fájl fejlécét, és néha az első sort ki kell hagyni a fájl tartalmának nyomtatásakor. Ebben az oktatóanyagban megmutatjuk, hogyan hajthatja végre ezt a feladatot az 'awk' paranccsal.
Hozzon létre egy szöveges fájlt
Az oktatóanyag folytatásához hozzon létre egy tabulátorral elválasztott szövegfájlt könyvlista.txt a következő tartalommal. Ez a fájl tartalmazza a megfelelő szerzőkkel rendelkező könyvek listáját. Ebben az oktatóanyagban megmutatjuk, hogyan nyomtathatja ki a fájl különböző részeit az első sor kihagyása után.
Kiberbiztonság bash Paul Tronconéval, Carl AlbinggelParancssor: Kung Fu Jason Cannon
Travis Booth Linux parancssor
Bash egyszerű lépésekben Mike McGrath
Unix egyszerű lépésekben Mike McGrath
1. példa: A fájl első sorának kihagyása az NR és a '>' operátor használatával
Az NR változó jelzi a fájlban lévő rekordok számát. A következő 'awk' parancs az NR változóval hagyja ki a fájl első sorát. Az NR értéke 1 az első sorban. A következő parancs olyan sorokat nyomtat, amelyeknél az NR értéke nagyobb, mint 1.
$ macska könyvlista.txt$ awk '(NR> 1)' könyvlista.txt
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimenet a fájl első sorától eltérő összes sort tartalmazza.
2. példa: Az első sor kihagyása az NR és a 'használatával!= 'operátor
A következő 'awk' parancs hasonló az előző példához. Azonban a '!= 'összehasonlító operátort használunk itt a'> 'helyett.
$ macska könyvlista.txt$ awk 'NR!= 1 'könyvlista.txt
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimenet a fájl első sorától eltérő összes sort mutatja.
3. példa: Feltételes utasítás használatával hagyja ki a fájl első sorát
A következő 'awk' parancs kinyomtatja a fájl sorait, ha az if utasítás igaz. Itt az if utasítás csak akkor lesz igaz, ha az NR értéke nem egyenlő 1-vel.
$ macska könyvlista.txt$ awk 'if (NR!= 1) print 'könyvlista.txt
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimenet minden sort tartalmaz, kivéve a fájl első sorát.
4. példa: Nyomtassa ki a könyv nevét a fájlból, de hagyja ki az első sort
Ebben a példában két 'awk' parancsot használnak az összes könyvnév kinyomtatására, az első kivételével. Az 'awk' parancs beolvassa az első oszlopot a fájlból a mezőelválasztó (\ t) alapján, és a kimenetet elküldi a második 'awk' parancsra. A második 'awk' parancs kinyomtatja a kívánt kimenetet.
$ macska könyvlista.txt$ awk -F "\ t" 'print $ 1' könyvlista.txt | awk 'NR!= 1 print '
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimenet az összes könyv nevét mutatja, az első könyv kivételével.
5. példa: Az első sor kihagyása után formázza a fájl tartalmát
Az '-F' opciót, az NR változót és a printf függvényt a következő 'awk' parancs használja formázott kimenet létrehozására az első sor kihagyása után. A parancs a fájl tartalmát oszlopokra osztja \ t alapján, és a printf kinyomtatja az első és a második oszlopot, ha az NR értéke legalább 2.
$ macska könyvlista.txt$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' könyvlista.txt
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimenet a fájl formázott tartalmát mutatja, a fájl első sorának kivételével.
6. példa: Az NR és az NF használatával nyomtassa ki a könyvneveket, miután kihagyta az első sort
A következő 'awk' parancs az '-F', valamint az NR és az NF használatával nyomtatja ki a könyv nevét az első könyv kihagyása után. Az '-F' opció a \ t fájlalap tartalmának elválasztására szolgál. Az NR az első sor kihagyására, az NF pedig csak az első oszlop kinyomtatására szolgál.
$ macska könyvlista.txt$ awk -F '\ t' 'NR> 1 && NF = 1' könyvlista.txt
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimenet tartalmazza az összes könyvnevet a fájlban, az első könyv kivételével.
7. példa: Az első sor kihagyása után nyomtassa ki a formázott szerzőneveket
A következő 'awk' parancs az '-F' opciót és egy feltételes utasítást használ a szerzőnevek kinyomtatására az első sor kihagyása után. Itt az NR értéket használjuk az if feltételben. Itt a „Szerző neve: \ n \ n” kerül kinyomtatásra első sorként az első sor tartalma helyett. A szerző nevét a fájlból kinyomtatják az NR többi értékéhez.
$ macska könyvlista.txt$ awk -F '\ t' 'if (NR == 1) printf "\ nAuthor neve: \ n \ n"; else printf "% s \ n", $ 2 'könyvlista.txt
A fenti kimenet a fenti parancsok futtatása után jön létre. A kimeneten a „Szerző neve:” szöveg új vonallal látható, és az összes szerző neve ki van nyomtatva, az első kivételével.
Következtetés
A fájl első sora átugorható különféle Linux parancsok használatával. Amint ebben az oktatóanyagban látható, különböző módon lehet kihagyni a fájl első sorát az 'awk' paranccsal. Figyelemre méltó, hogy az 'awk' parancs NR változójával bármely fájl első sorát kihagyhatjuk.