Advanced unix String handling substr extraction find length of string array
Inhoudsopgave:
Een van de meest voorkomende bewerkingen bij het werken met tekenreeksen in Bash is om te bepalen of een tekenreeks een andere tekenreeks bevat., laten we je verschillende manieren zien om te controleren of een string een substring bevat.
Wildcards gebruiken
De eenvoudigste methode is om de substring te omringen met asterisk-jokertekens (asterisk)
*
en deze te vergelijken met de tekenreeks. Wildcard is een symbool dat wordt gebruikt om nul, een of meer tekens weer te geven.
Als de test
true
retourneert, bevindt de substring zich in de tekenreeks.
In het onderstaande voorbeeld gebruiken we de instructie if en de operator equality (
==
) om te controleren of de substring
SUB
wordt gevonden in de tekenreeks
STR
:
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Wanneer het script wordt uitgevoerd, wordt het volgende uitgevoerd:
De case-operator gebruiken
In plaats van de if-instructie kunt u ook de case-instructie gebruiken om te controleren of een string een andere string bevat.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac
Regex-operator gebruiken
Een andere optie om te bepalen of een opgegeven substring binnen een string voorkomt, is om de regex-operator
=~
. Wanneer deze operator wordt gebruikt, wordt de juiste tekenreeks beschouwd als een reguliere expressie.
De periode gevolgd door een asterisk
.*
Komt overeen met nul of meer tekens, behalve een nieuweteken.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Het script echo het volgende:
Grep gebruiken
De opdracht grep kan ook worden gebruikt om tekenreeksen in een andere tekenreeks te vinden.
In het volgende voorbeeld geven we de tekenreeks
$STR
als invoer voor grep en controleren we of de tekenreeks
$SUB
wordt gevonden in de invoerreeks. De opdracht retourneert
true
of niet
false
van toepassing.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi
De optie
-q
geeft aan dat grep stil moet zijn om de uitvoer weg te laten.
Conclusie
Controleren of een string een substring bevat, is een van de meest elementaire en meest gebruikte bewerkingen in Bash scripting.
Na het lezen van deze tutorial moet u goed begrijpen hoe u kunt testen of een string een andere string bevat. U kunt ook andere opdrachten gebruiken, zoals
awk
of
sed
voor het testen.
Schadebeheer: met duurzame apparaten kunnen gadgetmakers opvallen (video)
LAS VEGAS-
Chrome 13 vrijgegeven: bevat directe pagina`s, afdrukvoorbeeld en meer Chrome 13 vrijgegeven: bevat directe pagina`s, afdrukvoorbeeld en meer
Download Chrome 13. Er wordt een nieuwe functie met de naam Instant Pages geïntroduceerd, die standaard is ingeschakeld. Bevat ook de afdrukvoorbeeldfunctie met behulp van de ingebouwde PDF-viewer.
Hoe te controleren of een bestand of map bestaat in bash
Vaak komt u bij het schrijven van Shell-scripts in een situatie terecht waarin u een actie moet uitvoeren op basis van het feit of een bestand bestaat of niet. In Bash kunt u de testopdracht gebruiken om te controleren of een bestand bestaat en het type van het bestand te bepalen.