Awk

De eerste regel van een bestand overslaan met 'awk'

De eerste regel van een bestand overslaan met 'awk'

Er zijn verschillende toepassingen van het 'awk'-commando in Linux. Het kan bijvoorbeeld worden gebruikt om de inhoud van een tekstbestand af te drukken. De eerste regel van veel tekstbestanden bevat de kop van het bestand en soms moet de eerste regel worden overgeslagen bij het afdrukken van de inhoud van het bestand. In deze zelfstudie laten we u zien hoe u deze taak kunt uitvoeren met de opdracht 'awk'.

Een tekstbestand maken

Om deze tutorial te volgen, maakt u een door tabs gescheiden tekstbestand met de naam boekenlijst.tekst met de volgende inhoud:. Dit bestand bevat een lijst met boeken met de bijbehorende auteurs. In deze zelfstudie laten we u zien hoe u verschillende delen van dit bestand kunt afdrukken nadat u de eerste regel hebt overgeslagen.

Cyberbeveiliging met bash Paul Troncone, Carl Albing
Commandolijn Kung Fu Jason Cannon
Linux Command Line Travis Booth
Bash in eenvoudige stappen Mike McGrath
Unix in eenvoudige stappen Mike McGrath

Voorbeeld 1: Sla de eerste regel van een bestand over met NR en de operator '>'

De variabele NR geeft het aantal records in een bestand aan. De volgende 'awk'-opdracht gebruikt de NR-variabele om de eerste regel van een bestand over te slaan. De waarde van NR is 1 voor de eerste regel. Met de volgende opdracht worden regels afgedrukt waarvoor de NR-waarde groter is dan 1.

$ katten boekenlijst.tekst
$ awk '(NR>1)' boekenlijst.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer bevat alle regels behalve de eerste regel van het bestand.

Voorbeeld 2: Sla de eerste regel over door NR en de '!=' operator

De volgende 'awk'-opdracht is vergelijkbaar met die in het vorige voorbeeld. Echter, de '!=' vergelijkingsoperator wordt hier gebruikt in plaats van '>'.

$ katten boekenlijst.tekst
$ awk 'NR!=1' boekenlijst.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer toont alle regels behalve de eerste regel van het bestand.

Voorbeeld 3: Sla de eerste regel van een bestand over door een voorwaardelijke instructie te gebruiken

Het volgende 'awk'-commando zal de regels van het bestand afdrukken als het if-statement waar is. Hier is de if-statement alleen waar als de NR-waarde niet gelijk is aan 1.

$ katten boekenlijst.tekst
$ awk 'if (NR!=1) print' boekenlijst.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer bevat alle regels behalve de eerste regel van het bestand.

Voorbeeld 4: Druk de boeknamen uit het bestand af, maar sla de eerste regel over

In dit voorbeeld worden twee 'awk'-commando's gebruikt om alle boeknamen af ​​te drukken, behalve de eerste. Het 'awk'-commando leest de eerste kolom uit het bestand op basis van het veldscheidingsteken (\t) en stuurt de uitvoer naar het tweede 'awk'-commando. Het tweede 'awk'-commando zal de gewenste uitvoer afdrukken.

$ katten boekenlijst.tekst
$ awk -F "\t" 'print $1' boekenlijst.txt | awk 'NR!=1 afdruk'

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer toont alle boeknamen behalve die van het eerste boek.

Voorbeeld 5: Formatteer de bestandsinhoud na het overslaan van de eerste regel

De '-F'-optie, NR-variabele en printf-functie worden gebruikt in de volgende 'awk'-opdracht om geformatteerde uitvoer te genereren na het overslaan van de eerste regel. De opdracht verdeelt de bestandsinhoud in kolommen op basis van \t, en printf drukt de eerste en tweede kolom af wanneer de NR-waarde minimaal 2 is.

$ katten boekenlijst.tekst
$ awk -F '\t' 'NR>=2 printf "%30s %20s\n", $1, $2' boekenlijst.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer toont de opgemaakte inhoud van het bestand, met uitzondering van de eerste regel van het bestand.

Voorbeeld 6: Druk de boeknamen af ​​na het overslaan van de eerste regel met NR en NF

De volgende 'awk'-opdracht gebruikt de optie '-F' en NR en NF om de boeknamen af ​​te drukken nadat het eerste boek is overgeslagen. De '-F' optie wordt gebruikt om de inhoud van het bestand te scheiden op \t. NR wordt gebruikt om de eerste regel over te slaan en NF wordt gebruikt om alleen de eerste kolom af te drukken.

$ katten boekenlijst.tekst
$ awk -F '\t' 'NR>1 && NF=1' boekenlijst.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer bevat alle boeknamen in het bestand behalve die van het eerste boek.

Voorbeeld 7: Druk de opgemaakte auteursnamen af ​​na het overslaan van de eerste regel

De volgende 'awk'-opdracht gebruikt de optie '-F' en een voorwaardelijke instructie om de auteursnamen af ​​te drukken na het overslaan van de eerste regel. Hier wordt de NR-waarde gebruikt in de if-conditie. Hier wordt "Naam auteur:\n\n" afgedrukt als de eerste regel in plaats van de inhoud van de eerste regel. De namen van de auteurs uit het bestand worden afgedrukt voor de andere waarden van NR.

$ katten boekenlijst.tekst
$ awk -F '\t' ' if (NR==1) printf "\nAuteurnaam:\n\n"; else  printf "%s\n", $2' boekenlijst.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer toont de tekst "Auteurnaam:" met een nieuwe regel en alle auteursnamen worden afgedrukt behalve de eerste.

Conclusie

De eerste regel van een bestand kan worden overgeslagen door verschillende Linux-commando's te gebruiken. Zoals in deze tutorial wordt getoond, zijn er verschillende manieren om de eerste regel van een bestand over te slaan met de opdracht 'awk'. Opmerkelijk is dat de NR-variabele van het 'awk'-commando kan worden gebruikt om de eerste regel van elk bestand over te slaan.

Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...
De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...
Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...