speller
Obsah:
Jednou z nejčastějších operací při práci s řetězci v Bash je zjistit, zda řetězec obsahuje jiný řetězec., ukážeme vám několik způsobů, jak zkontrolovat, zda řetězec obsahuje podřetězec.
Používání zástupných znaků
Nejjednodušší přístup je obklopit podřetězec hvězdičkovými zástupnými symboly (hvězdička)
*
a porovnat jej s řetězcem. Zástupný znak je symbol, který představuje nulu, jeden nebo více znaků.
Pokud se test vrátí
true
, je řetězec obsažen v řetězci.
V níže uvedeném příkladu používáme příkaz if a operátor rovnosti (
==
) ke kontrole, zda se podřetězec
SUB
nachází v řetězci
STR
:
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Po spuštění bude výstup skriptu:
Pomocí pouzdra operátor
Namísto použití příkazu if můžete také pomocí příkazu case zkontrolovat, zda řetězec obsahuje jiný řetězec.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac
Použití Regex Operator
Další možností, jak určit, zda k určitému podřetězci dochází v řetězci, je použít operátor regex
=~
. Při použití tohoto operátoru je správný řetězec považován za regulární výraz.
Období, za kterým následuje hvězdička
.*
Odpovídá nule nebo více výskytům libovolného znaku kromě znaku nového řádku.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Skript bude odrážet následující:
Pomocí Grep
Příkaz grep lze také použít k nalezení řetězců v jiném řetězci.
V následujícím příkladu předáváme řetězec
$STR
jako vstup do grepu a kontrolujeme, zda se řetězec
$SUB
nachází ve vstupním řetězci. Příkaz vrátí
true
nebo
false
podle potřeby.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi
Volba
-q
říká grep, aby byl tichý, aby vynechal výstup.
Závěr
Kontrola, zda řetězec obsahuje podřetězec, je jednou z nejzákladnějších a nejčastěji používaných operací v skriptování Bash.
Po přečtení tohoto tutoriálu byste měli dobře rozumět tomu, jak otestovat, zda řetězec obsahuje jiný řetězec. K testování můžete také použít jiné příkazy, jako je
awk
nebo
sed
.
Jak zkontrolovat, zda je USB, DVD zavádějící na Windows Pc
Tento příspěvek vám ukáže, jak ověřit a zjistit, , CD, DVD médium je možné spustit na počítači se systémem Windows pomocí freeware MobaLiveCD s počítačem QEMU.
Jak zkontrolovat, zda je počítač připraven pro systém Windows 7
Naučte se, jak spustit poradce pro upgrade na systém Windows před upgradem z Windows Vista na Windows 7
Jak zkontrolovat, zda existuje soubor nebo adresář v bash
Při psaní skriptů Shell se mnohokrát ocitnete v situaci, kdy je třeba provést akci na základě toho, zda soubor existuje nebo ne. V Bash můžete pomocí příkazu test zkontrolovat, zda soubor existuje, a určit typ souboru.