Android

Sådan kontrolleres, om en streng indeholder en substring i bash

剪定ばさみの研ぎ方【岡恒の剪定鋏を超仕上げ】(字幕)

剪定ばさみの研ぎ方【岡恒の剪定鋏を超仕上げ】(字幕)

Indholdsfortegnelse:

Anonim

En af de mest almindelige handlinger, når du arbejder med strenge i Bash, er at bestemme, om en streng indeholder en anden streng., viser vi dig flere måder at kontrollere, om en streng indeholder en substring.

Brug af wildcards

Den nemmeste metode er at omgi substringstrengen med asterisk wildcard symboler (asterisk) * og sammenligne den med strengen. Wildcard er et symbol, der bruges til at repræsentere nul, en eller flere tegn.

Hvis testen returnerer true , er substrengen indeholdt i strengen.

I eksemplet nedenfor bruger vi if-sætningen og ligestillingsoperatøren ( == ) til at kontrollere, om den underliggende streng er fundet i strengen STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Når det udføres, udskrives scriptet:

It's there.

Brug af sagsoperatøren

I stedet for at bruge if-sætningen, kan du også bruge sagsangivelsen til at kontrollere, om en streng inkluderer en anden streng eller ej.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

Brug af Regex Operator

En anden mulighed for at bestemme, om en specificeret undertreng forekommer i en streng, er at bruge regex-operatoren =~ . Når denne operatør bruges, betragtes den højre streng som et almindeligt udtryk.

Perioden efterfulgt af en stjerne .* Matcher nul eller flere forekommer et hvilket som helst tegn undtagen en newline-karakter.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

Scriptet gentager følgende:

It's there.

Brug af Grep

Grep-kommandoen kan også bruges til at finde strenge i en anden streng.

I det følgende eksempel overfører vi strengen $STR som en input til grep og kontrollerer, om strengen $SUB findes i inputstrengen. Kommandoen returnerer true eller false efter behov.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

Indstillingen -q fortæller, at grep skal være stille, for at udelade output.

Konklusion

Kontrol af, om en streng indeholder en substring, er en af ​​de mest basale og hyppigt anvendte handlinger i Bash-scripting.

Efter at have læst denne tutorial, skal du have en god forståelse af, hvordan du tester, om en streng inkluderer en anden streng. Du kan også bruge andre kommandoer som awk eller sed til test.

bash terminal