A Linuxban az `awk` parancsnak többféle felhasználási módja van. Például egy szöveges fájl tartalmának kinyomtatására használható. Sok szövegfá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 kell elvégezni ezt a feladatot az `awk` paranccsal.
Hozzon létre egy szöveges fájlt
Ennek az oktatóanyagnak a folytatásához hozzon létre egy tabulátorral határolt szövegfájlt könyvlista.txt a következő tartalommal. Ez a fájl a könyveket tartalmazza a megfelelő szerzőkkel. Ebben az oktatóanyagban megmutatjuk, hogyan kell kinyomtatni a fájl különböző részeit az első sor kihagyása után.
Kiberbiztonság a bash Paul Troncone és Carl Albing közreműködésével
Parancssor Kung Fu Jason Cannon
Linux parancssori Travis Booth
Bash egyszerű lépésekben Mike McGrath
Unix egyszerű lépésekben Mike McGrath
1. példa: Hagyja ki a fájl első sorát 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ót használja a fájl első sorának kihagyására. Az NR értéke 1 az első sorban. A következő parancs olyan sorokat nyomtat, amelyek NR értéke nagyobb, mint 1.
$macskakönyvlista.txt
$awk '(NEM> 1)'könyvlista.txt
A fenti parancsok futtatása után a következő kimenet jön létre. A kimenet tartalmazza a fájl első sorától eltérő összes sort.
2. példa: Hagyja ki az első sort az NR és a '! =' Operátor használatával
A következő `awk` parancs hasonló az előző példához. Azonban itt a „! =” Összehasonlító operátort kell használni a „>” helyett.
$macskakönyvlista.txt$awk 'NR! = 1'könyvlista.txt
A fenti parancsok futtatása után a következő kimenet jön létre. A kimenet minden sort megjelenít, kivéve a fájl első sorát.
3. példa: Feltételes utasítással ugorja át 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 -el.
$macskakönyvlista.txt$awk '{if (NR! = 1) {print}}'könyvlista.txt
A fenti parancsok futtatása után a következő kimenet 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álunk az összes könyv nevének kinyomtatására az első kivételével. Az `awk` parancs a mező elkülönítője ( t) alapján kiolvassa a fájl első oszlopát, és elküldi a kimenetet a második` awk` parancsnak. A második `awk` parancs kinyomtatja a kívánt kimenetet.
$macskakönyvlista.txt$awk -F ' t' '{print $ 1}'könyvlista.txt| awk 'NR! = 1 nyomtatás}'
A fenti parancsok futtatása után a következő kimenet jön létre. A kimenet az összes könyv nevét mutatja, kivéve az első könyvet.
5. példa: Formázza a fájl tartalmát az első sor kihagyása után
A „-F” opciót, az NR változót és a printf funkciót a következő „awk” parancs használja formázott kimenet generálásához az első sor kihagyása után. A parancs a t alapján oszlopokra osztja a fájl tartalmát, és a printf kinyomtatja az első és a második oszlopot, ha az NR érték legalább 2.
$macskakönyvlista.txt$awk -F ' t' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'könyvlista.txt
A fenti parancsok futtatása után a következő kimenet jön létre. A kimenet a fájl formázott tartalmát mutatja, kivéve a fájl első sorát.
6. példa: Nyomtassa ki a könyvneveket, miután kihagyta az első sort NR és NF használatával
A következő 'awk' parancs az '-F' opciót és az NR és NF billentyűket használja a könyvnevek kinyomtatására az első könyv kihagyása után. A „-F” opciót a t fájlállomány tartalmának elkülönítésére használjuk. Az NR az első sor kihagyására, az NF pedig csak az első oszlop nyomtatására szolgál.
$macskakönyvlista.txt$awk -F ' t' 'NR> 1 && NF = 1'könyvlista.txt
A fenti parancsok futtatása után a következő kimenet jön létre. A kimenet tartalmazza az összes könyvnevet a fájlban, kivéve az első könyvet.
7. példa: Nyomtassa ki a formázott szerzőneveket az első sor kihagyása után
A következő 'awk' parancs az '-F' opciót és egy feltételes utasítást használja a szerzőnevek kinyomtatására az első sor kihagyása után. Itt az NR érték az if feltételben használatos. Itt a Szerző neve: n n lesz nyomtatva első sorként az első sor tartalma helyett. A szerző neve a fájlból az NR többi értékére lesz nyomtatva.
$macskakönyvlista.txt$awk -F ' t' '{if (NR == 1) printf' nA szerző neve: n n '; else printf '%s n', $ 2} 'könyvlista.txt
A fenti parancsok futtatása után a következő kimenet jön létre. A kimeneten megjelenik a szöveg, Szerző neve: új sorral, és az összes szerző neve ki lesz nyomtatva, kivéve az elsőt.
Következtetés
A fájl első sora átugorható különféle Linux parancsok használatával. Amint az ebben az oktatóanyagban látható, az 'awk' paranccsal különböző módon lehet kihagyni a fájl első sorát. Figyelemre méltó, hogy az `awk` parancs NR változója használható bármely fájl első sorának kihagyására.