Awk

Regex gebruiken met het 'awk'-commando

Regex gebruiken met het 'awk'-commando

Een reguliere expressie (regex) wordt gebruikt om een ​​bepaalde reeks tekens in een bestand te vinden. Symbolen zoals letters, cijfers en speciale tekens kunnen worden gebruikt om het patroon te definiëren. Verschillende taken kunnen eenvoudig worden voltooid door regex-patronen te gebruiken. In deze zelfstudie laten we u zien hoe u regex-patronen kunt gebruiken met het 'awk'-commando.

De basistekens die in patronen worden gebruikt

Er kunnen veel tekens worden gebruikt om een ​​regex-patroon te definiëren. De karakters die het meest worden gebruikt om regex-patronen te definiëren, worden hieronder gedefinieerd:.

Karakter Omschrijving
. Overeenkomen met elk teken zonder een nieuwe regel (\n)
\ Citeer een nieuw meta-karakter
^ Overeenkomen met het begin van een regel
$ Overeenkomen met het einde van een regel
| Definieer een alternatief
() Definieer een groep
[] Definieer een tekenklasse
\w Overeenkomen met elk woord
\s Overeenkomen met elk witruimteteken
\d Overeenkomen met elk cijfer
\b Overeenkomen met elke woordgrens

Maak een bestand

Om deze tutorial te volgen, maakt u een tekstbestand met de naam producten.tekst. Het bestand moet vier velden bevatten: ID, Naam, Type en Prijs.

ID Naam Type Prijs

p1001 15-inch monitormonitor $ 100

p1002 A4tech Muis Muis $10

p1003 Samsung-printerprinter $ 50

p1004 HP scannerscanner $ 60

p1005 Logitech Muis Muis $15

Voorbeeld 1: Definieer een regex-patroon met behulp van de tekenklasse

De volgende 'awk'-opdracht zoekt en drukt regels af die het teken 'n' bevatten, gevolgd door de tekens 'er'.

$ kattenproducten.tekst
$ awk '/[n][er]/ print $0' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer toont de lijn die overeenkomt met het patroon. Hier komt slechts één regel overeen met het patroon.

Voorbeeld 2: Definieer een regex-patroon met het '^'-symbool

De volgende 'awk'-opdracht zoekt en drukt regels af die beginnen met het teken 'p' en het cijfer 3 . bevatten.

$ kattenproducten.tekst
$ awk '/^p.*3/ print $0' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. Hier is er één regel die overeenkomt met het patroon.

Voorbeeld 3: Definieer een regex-patroon met behulp van de gsub-functie

De gsub() functie wordt gebruikt om globaal te zoeken naar en tekst te vervangen. De volgende 'awk'-opdracht zoekt naar het woord 'Scanner' en vervangt dit door het woord 'Router' voordat het resultaat wordt afgedrukt.

$ kattenproducten.tekst
$ awk 'gsub(/Scanner/, "Router")' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. Er is één regel met het woord 'Scanner', en 'Scanner' wordt vervangen door het woord 'Router' voordat de regel wordt afgedrukt.

Voorbeeld 4: Definieer een regex-patroon met '*'

De volgende 'awk'-opdracht zoekt en drukt elke tekenreeks af die begint met 'Mo' en elk volgend teken bevat.

$ kattenproducten.tekst
$ awk '/Mo*/ print $0' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. Drie lijnen komen overeen met het patroon: twee lijnen bevatten het woord 'Muis' en een regel bevat het woord 'Monitor'.

Voorbeeld 5: Definieer een regex-patroon met het '$'-symbool

De volgende 'awk'-opdracht zoekt naar regels in het bestand en drukt deze af die eindigen op het cijfer 5.

$ kattenproducten.tekst
$ awk '/5$/ print $0' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:.  Er is slechts één regel in het bestand die eindigt met het cijfer 5.

Voorbeeld 6: Definieer een regex-patroon met de '^' en '|' symbolen

De '^' symbool geeft het begin van een regel aan, en het '|' symbool geeft een logische OR-instructie aan. De volgende 'awk'-opdracht zoekt en drukt regels af die beginnen met het teken 'p' en bevatten ofwel 'Scanner' of 'Muis'.

$ kattenproducten.tekst
$ awk '/^p.* (Scanner|Muis)/' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De uitvoer laat zien dat twee regels het woord ' bevattenMuis' en een regel bevat het woord 'Scanner'. De drie regels beginnen met het teken 'p'.

Voorbeeld 7: Definieer een regex-patroon met het '+'-symbool

De '+' operator wordt gebruikt om ten minste één overeenkomst te vinden. De volgende 'awk'-opdracht zoekt en drukt regels af die het teken ' bevattennee' ten minste een keer.

$ kattenproducten.tekst
$ awk '/n+/print' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. Hier, het personage 'nee' bevat komt minstens één keer voor in de regels die de woorden bevatten Monitor, printer en scanner.

Voorbeeld 8: Definieer een regex-patroon met de functie gsub()

Het volgende 'awk'-commando zoekt globaal naar het woord 'Printer' en vervang het door het woord 'Monitor' de ... gebruiken gsub() functie.

$ kattenproducten.tekst
$ awk 'gsub(/Printer/, “Monitor”) print$0' producten.tekst

De volgende uitvoer wordt geproduceerd na het uitvoeren van de bovenstaande opdrachten:. De vierde regel van het bestand bevat het woord 'Printer' tweemaal, en in de uitvoer, 'Printer' is vervangen door het woord 'Monitor'.

Conclusie

Veel symbolen en functies kunnen worden gebruikt om regex-patronen te definiëren voor verschillende zoek- en vervangingstaken. Sommige symbolen die vaak worden gebruikt in regex-patronen worden in deze tutorial toegepast met het 'awk'-commando.

Wijs uw muisknoppen anders toe voor verschillende software met X-Mouse Button Control
Misschien heeft u een tool nodig waarmee u de bediening van uw muis kunt veranderen bij elke applicatie die u gebruikt. Als dit het geval is, kunt u e...
Microsoft Sculpt Touch draadloze muis Review
Ik las onlangs over de Microsoft Sculpt Touch draadloze muis en besloot hem te kopen. Nadat ik het een tijdje had gebruikt, besloot ik mijn ervaring e...
AppyMouse trackpad en muisaanwijzer op het scherm voor Windows-tablets
Tabletgebruikers missen vaak de muisaanwijzer, vooral wanneer ze gewend zijn om de laptop te gebruiken. Het touchscreen Smartphones en tablets hebben ...