BASH-programmering

Tekens verwijderen uit String in Bash

Tekens verwijderen uit String in Bash

Soms moet u tekens uit een tekenreeks verwijderen. Wat de reden ook is, Linux biedt je verschillende ingebouwde, handige tools waarmee je karakters uit een string in Bash kunt verwijderen. Dit artikel laat zien hoe je die tools kunt gebruiken om tekens uit een string te verwijderen.

In het artikel wordt beschreven hoe u het volgende kunt doen:

De opdrachten die in dit artikel worden getoond, zijn uitgevoerd in Ubuntu 20.04 Fossa. Dezelfde commando's kunnen ook worden uitgevoerd op andere Linux-distributies die de bovenstaande tools beschikbaar hebben. We zullen de standaard Terminal-toepassing gebruiken om de opdrachten uit te voeren. U kunt de Terminal-toepassing openen met de sneltoets Ctrl+Alt+T.

Tekens uit string verwijderen met sed

Sed is een krachtig en handig hulpprogramma dat wordt gebruikt voor het bewerken van tekststromen. Het is een niet-interactieve teksteditor waarmee u basistekstmanipulaties op invoerstromen kunt uitvoeren. Je kunt ook sed gebruiken om ongewenste tekens uit strings te verwijderen.

Voor demonstratiedoeleinden zullen we een voorbeeldreeks gebruiken en deze vervolgens naar het sed-commando sturen.

Specifiek karakter uit string verwijderen

Met sed kun je een specifiek teken uit een string verwijderen. Als u bijvoorbeeld "h" wilt verwijderen uit de tekenreeks "Hallo hoe gaat het?” zou het commando zijn:

$ echo "hallo, hoe gaat het??" | zo 's/h//'

Hiermee wordt alleen het eerste voorkomen van 'h' in de tekenreeks verwijderd.

Gebruik de volgende opdracht om alle exemplaren van 'h' uit de tekenreeks te verwijderen:

$ echo "hallo, hoe gaat het??" | s/h//g'

Waar g staat voor globaal. Het zal alle exemplaren van 'h' in de string verwijderen.

Eerste teken uit tekenreeks verwijderen

Om het eerste teken uit de tekenreeks te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | sed 's/^.//' het dossier

waar (.) komt exact overeen met een enkel teken en (^) komt overeen met elk teken aan het begin van de tekenreeks.

Laatste teken uit string verwijderen

Om het laatste teken uit de tekenreeks te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | sed 's/.$//'

waar (.) komt exact overeen met een enkel teken en ($) komt overeen met elk teken aan het einde van de tekenreeks.

Eerste en laatste teken uit String verwijderen

Om het eerste en laatste teken uit de tekenreeks te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | sed 's/^.//;s/.$//'

Tekens uit String verwijderen met awk

Awk is een krachtige scripttaal die wordt gebruikt voor het matchen van patronen, samen met tekstverwerking. Met Awk kun je tekst op verschillende manieren filteren en transformeren. U kunt awk ook gebruiken om tekens uit tekenreeksen te verwijderen.

Voor demonstratiedoeleinden zullen we een voorbeeldreeks gebruiken en deze vervolgens doorsluizen naar het awk-commando.

Eerste teken uit een tekenreeks verwijderen

Om het eerste teken uit de tekenreeks te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | awk ' print substr( $0, 2 ) '

Waar ($0) de hele doelreeks is en (2) de startpositie van het teken is. De bovenstaande opdracht verwijdert het eerste teken, 'h', tekennummer '1,' en retourneert de doelreeks die begint met het tweede teken, 'e.'

Eerste twee tekens uit String verwijderen from

U kunt ook een bepaald aantal tekens aan het begin van een tekenreeks verwijderen. Als u bijvoorbeeld de eerste twee tekens uit de tekenreeks "Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | awk ' print substr ($0, 3 ) '

De bovenstaande opdracht verwijdert de eerste twee tekens, 'hij' of tekennummers '1 en 2' en retourneert de doelreeks die begint met tekennummer '3' of 'l.'

Laatste teken uit string verwijderen

Om het laatste teken uit “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | awk ' print substr( $0, 1, lengte($0)-1 ) '

Waar lengte($0)-1 betekent aftrekken '1' van de totale tekenlengte.

De bovenstaande opdracht drukt de tekenreeks af die begint met tekennummer '1' tot lengte($0)-1 om het laatste teken te verwijderen.

Er zijn '19' karakters (inclusief spaties) in de bovenstaande string. De opdracht werkt door alle tekens af te drukken, te beginnen met teken '1' en tot karakter '18,' terwijl het laatste teken wordt verwijderd '19.'

Laatste twee tekens uit String verwijderen

Om de laatste twee tekens uit “Hallo hoe gaat het?” zou het commando zijn:

$ echo "hallo, hoe gaat het??" | awk ' print substr( $0, 1, lengte($0)-2) '

Waar lengte($0)-2 betekent aftrekken '2' van de totale tekenlengte.

De bovenstaande opdracht drukt de tekenreeks af, beginnend met tekennummer '1' en tot teken nummer 'lengte($0)-2,' om de laatste twee tekens in de tekenreeks te verwijderen.

Verwijder zowel het eerste als het laatste teken uit String

Om zowel het eerste als het laatste karakter uit de string te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | awk 'print substr($0, 2, lengte($0) - 2)'

Waar lengte($0)-2 betekent aftrekken '2' van de totale tekenlengte.

De bovenstaande opdracht drukt de tekenreeks af, beginnend met tekennummer '2' tot teken nummer 'lengte($0)-2,' om het eerste en laatste teken te verwijderen.

Teken uit tekenreeks verwijderen met knippen

Knippen is een opdrachtregelprogramma dat vaak wordt gebruikt om een ​​deel van de tekst uit een tekenreeks of bestand te extraheren en het resultaat af te drukken naar een standaarduitvoer. U kunt deze opdracht ook gebruiken om tekens uit een tekenreeks te verwijderen.

Voor demonstratiedoeleinden zullen we een voorbeeldreeks gebruiken en deze vervolgens naar het cut-commando sturen.

Eerste teken uit string verwijderen

Om het eerste teken uit de tekenreeks te verwijderen, "Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | knippen -c 2-

Met deze opdracht wordt de tekenreeks afgedrukt, beginnend met het tweede teken, terwijl het eerste teken wordt verwijderd.

Verwijder de eerste vier tekens uit String

Om de eerste vier tekens uit de tekenreeks te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | knippen -c 5-

Met deze opdracht wordt de tekenreeks afgedrukt, beginnend bij het vijfde teken, terwijl de eerste vier tekens worden verwijderd.

Tekenreeks tussen 2e en 5e karakters afdrukken

Om de tekenreeks af te drukken "Hallo hoe gaat het?” tussen het tweede en vijfde karakter, het commando zou zijn:

$ echo "hallo, hoe gaat het??" | knippen -c 2-5

Met deze opdracht wordt de tekenreeks afgedrukt, beginnend bij het tweede teken en tot het vijfde teken, terwijl de resterende begin- en eindtekens worden verwijderd.

Laatste teken uit string verwijderen

Om het laatste teken uit de tekenreeks te verwijderen “Hallo hoe gaat het?” gebruik de besnoeiing commando met rev, als volgt:

$ echo "hallo, hoe gaat het??" | rev | cut -c2- | rev

Deze opdracht werkt door eerst de tekenreeks om te draaien, vervolgens het eerste teken af ​​te knippen en uiteindelijk weer om te keren om u de gewenste uitvoer te geven.

Laatste vier tekens uit String verwijderen

Om de laatste vier tekens van de regel te verwijderen “Hallo hoe gaat het?” het commando zou zijn:

$ echo "hallo, hoe gaat het??" | rev | cut -c5- | rev

Deze opdracht werkt door eerst de tekenreeks om te draaien, vervolgens de eerste vier tekens af te knippen en vervolgens weer om te keren om u de gewenste uitvoer te geven.

Eerste en laatste tekens uit String verwijderen

Om de eerste en laatste tekens uit de tekenreeks te verwijderen "Hallo hoe gaat het?” gebruik de besnoeiing commando met rev, als volgt:

$ echo "hallo wereld!" | knippen -c2- | rev | knippen -c2- |rev

Deze opdracht werkt door het eerste teken te knippen, vervolgens de tekenreeks om te keren en het eerste teken te knippen, en vervolgens weer om te keren om u de gewenste uitvoer te geven.

Teken uit string verwijderen met tr

Het tr-commando (afkorting van translate) wordt gebruikt om tekens uit een tekenreeks te vertalen, te persen en te verwijderen. Je kunt tr ook gebruiken om tekens uit een tekenreeks te verwijderen.

Voor demonstratiedoeleinden zullen we een voorbeeldreeks gebruiken en deze vervolgens doorsturen naar het tr-commando.

Alle voorkomen van karakter verwijderen

Met behulp van het tr-commando kunt u alle voorkomen van kleine letters of hoofdletters uit uw tekenreeks verwijderen. Om bijvoorbeeld alle exemplaren van de kleine letter 'h' uit de tekenreeks te verwijderen, zou de opdracht zijn:

$ echo "Hallo, hoe gaat het??" | tr -d h

Evenzo, om alle exemplaren van de hoofdletter 'H' uit de tekenreeks te verwijderen, zou de opdracht zijn:

$ echo "Hallo, hoe gaat het??" | tr -d H

U kunt ook geïnterpreteerde reeksen gebruiken om kleine letters of hoofdletters te verwijderen:

$ echo "Hallo, hoe gaat het??"| tr -d [:upper:]

$ echo "HALLO, hoe gaat het met je?"| tr -d [:lager:]

Alle voorkomen van kleine letters en hoofdletters verwijderen

U kunt ook alle voorkomens van zowel kleine letters als hoofdletters uit een string verwijderen. De volgende opdracht verwijdert bijvoorbeeld alle exemplaren van het teken 'h', zowel kleine letters als hoofdletters.

$ echo "Hallo, hoe gaat het??" | tr -d 'hH'

Alle voorkomen van tekens in een specifiek bereik verwijderen

Om alle voorkomens van tekens uit een tekenreeks in het specifieke bereik 'd-h' te verwijderen, zou de opdracht zijn:

$ echo "hallo, hoe gaat het??" | tr -d 'd-h'

Deze opdracht verwijdert alle tekens in het bereik 'd-h' (d,e,f,g,h) in de tekenreeks.

Conclusie

In Linux zal er altijd meer dan één manier zijn om een ​​eenvoudige klus te klaren. Hetzelfde geldt voor het verwijderen van tekens uit een string. Dit artikel liet je vier verschillende manieren zien om dit te doen, samen met een paar voorbeelden voor het verwijderen van ongewenste tekens uit een string. Bepalen welke tool u allemaal gaat gebruiken, hangt af van uw voorkeuren en, belangrijker nog, van wat u wilt bereiken.

Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...
Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...