Awk

Hoe de eerste kolom of laatste kolom of beide af te drukken met 'awk'

Hoe de eerste kolom of laatste kolom of beide af te drukken met 'awk'

Het 'awk'-commando van Linux is een krachtig hulpprogramma voor verschillende bewerkingen op tekstbestanden, zoals zoeken, vervangen en afdrukken. Het is gemakkelijk te gebruiken met tabelgegevens omdat het elke regel automatisch in velden of kolommen verdeelt op basis van het veldscheidingsteken. Wanneer u met een tekstbestand werkt dat tabelgegevens bevat en u wilt de gegevens van een bepaalde kolom afdrukken, dan is het 'awk'-commando de beste optie. In deze zelfstudie laten we u zien hoe u de eerste kolom en/of laatste kolom van een regel of tekstbestand kunt afdrukken.

Print de eerste kolom en/of laatste kolom van een opdrachtuitvoer

Veel Linux-commando's, zoals het 'ls'-commando, genereren uitvoer in tabelvorm. Hier laten we u zien hoe u de eerste kolom en/of laatste kolom kunt afdrukken vanuit de uitvoer van de opdracht 'ls -l'.

Voorbeeld 1: Druk de eerste kolom van een opdrachtuitvoer af

Het volgende 'awk'-commando drukt de eerste kolom af van de uitvoer van het 'ls -l'-commando.

$ ls -l
$ ls -l | awk ' print $1 '

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.

Voorbeeld 2: Druk de laatste kolom van een opdrachtuitvoer af

Het volgende 'awk'-commando drukt de laatste kolom af van de uitvoer van het 'ls -l'-commando.

$ ls -l
$ ls -l | awk ' print $NF '

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.

Voorbeeld 3: Druk de eerste en laatste kolom van een opdrachtuitvoer af

De volgende 'awk'-opdracht drukt de eerste en laatste kolommen af ​​van de uitvoer van de 'ls -l'-opdracht.

$ ls -l
$ ls -l | awk ' print $1,  $NF '

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.

Print de eerste kolom en/of laatste kolom van een tekstbestand

Hier laten we u zien hoe u het 'awk'-commando gebruikt om de eerste kolom en/of laatste kolom van een tekstbestand af te drukken.

Een tekstbestand maken

Om deze tutorial te volgen, maakt u een tekstbestand met de naam klanten.tekst met de volgende inhoud:. Het bestand bevat drie soorten klantgegevens: naam met id, e-mailadres en telefoonnummer. Het tab-teken (\t) wordt gebruikt om deze waarden te scheiden.

Naam E-mail Telefoon
Jonathon Bing - 1001 [email protected] 01967456323
Michael Jackson - 2006 [email protected] 01756235643
Janifer Lopez - 3029 [email protected] 01822347865
John Abraham - 4235 j[email protected] 01590078452
Mir Sabbir - 2756 [email protected] 01189523978

Voorbeeld 4: Druk de eerste kolom van een bestand af zonder een veldscheidingsteken te gebruiken

Als er geen veldscheidingsteken wordt gebruikt in het 'awk'-commando, wordt een spatie gebruikt als het standaardveldscheidingsteken. De volgende 'awk'-opdracht drukt de eerste kolom af met behulp van het standaardscheidingsteken.

$ katten klanten.tekst
$ awk 'print $1' klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. Houd er rekening mee dat de uitvoer alleen de voornaam van de klant toont, omdat de spatie wordt toegepast als veldscheidingsteken. De oplossing voor dit probleem wordt getoond in het volgende voorbeeld.

Voorbeeld 5: Druk de eerste kolom van een bestand af met een scheidingsteken

Hier wordt \t gebruikt als veldscheidingsteken om de eerste kolom van het bestand af te drukken. De optie '-F' wordt gebruikt om het veldscheidingsteken in te stellen.

$ katten klanten.tekst
$ awk -F '\t' 'print $1' klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De inhoud van het bestand is verdeeld in drie kolommen op basis van \t. Daarom worden de naam en het ID van de klant afgedrukt als de eerste kolom. Als u de naam van de klant wilt afdrukken zonder de id, gaat u verder met het volgende voorbeeld.


Als u de naam van de klant wilt afdrukken zonder de id, dan moet u '-' gebruiken als veldscheidingsteken. De volgende 'awk'-opdracht drukt de naam van de klant alleen af ​​als de eerste kolom.

$ katten klanten.tekst
$ awk -F '-' 'print $1' klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer bevat de volledige namen van de klanten zonder hun ID.

Voorbeeld 6: Druk de laatste kolom van een bestand af

De volgende 'awk'-opdracht drukt de laatste kolom met klanten af.tekst. Omdat er geen veldscheidingsteken wordt gebruikt in de opdracht, wordt de spatie gebruikt als veldscheidingsteken.

$ katten klanten.tekst
$ awk 'print $NF' klanten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De laatste kolom bevat telefoonnummers, zoals weergegeven in de uitvoer.

Voorbeeld 7: Druk de eerste en laatste kolom van een bestand af

De volgende 'awk'-opdracht drukt de eerste en laatste kolommen van klanten af.tekst. Hier wordt tab (\t) gebruikt als veldscheidingsteken om de inhoud in kolommen te verdelen. Hier wordt tab (\t) gebruikt als scheidingsteken voor de uitvoer.

$ katten klanten.tekst
$ awk -F "\t"  'print $1 "\t"  $NF' klanten.tekst

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:. De inhoud is verdeeld in drie kolommen door \t; de eerste kolom bevat de naam en id van de klant en de tweede kolom bevat het telefoonnummer. De eerste en laatste kolom worden afgedrukt met \t als scheidingsteken.

Conclusie

Het 'awk'-commando kan op verschillende manieren worden toegepast om de eerste kolom en/of laatste kolom uit elke opdrachtuitvoer of uit tabelgegevens te halen. Het is belangrijk op te merken dat een veldscheidingsteken vereist is in de opdracht, en als er geen is opgegeven, wordt de spatie gebruikt.

Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...
Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...