Основы Ubuntu Linux: apt-get, bash, командная строка
Innehållsförteckning:
En av de vanligaste operationerna när du arbetar med strängar i Bash är att avgöra om en sträng innehåller en annan sträng eller inte., visar vi dig flera sätt att kontrollera om en sträng innehåller en substring.
Med hjälp av jokertecken
Det enklaste tillvägagångssättet är att omge substrängen med asterisk jokersymboler (asterisk)
*
och jämföra den med strängen. Wildcard är en symbol som används för att representera noll, en eller flera tecken.
Om testet återgår
true
, finns substanssträngen i strängen.
I exemplet nedan använder vi if-satsen och jämställdhetsoperatören (
==
) för att kontrollera om understrängen
SUB
finns i strängen
STR
:
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Vid körning kommer skriptet att matas ut:
Använda falloperatören
Istället för att använda if-uttalandet kan du också använda ärendeuttalandet för att kontrollera om en sträng innehåller en annan sträng eller inte.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac
Använda Regex Operator
Ett annat alternativ för att bestämma om en specificerad substring inträffar i en sträng är att använda regex-operatören
=~
. När den här operatören används betraktas den högra strängen som ett vanligt uttryck.
Perioden följt av en asterisk
.*
Matchar noll eller fler förekommer vilket tecken som helst utom ett tecken på en ny linje.
#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi
Skriptet kommer att upprepa följande:
Använda Grep
Grep-kommandot kan också användas för att hitta strängar i en annan sträng.
I följande exempel överför vi strängen
$STR
som en ingång till grep och kontrollerar om strängen
$SUB
finns i inmatningssträngen. Kommandot kommer att returnera
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
Alternativet
-q
säger att grep ska vara tyst, för att utelämna utgången.
Slutsats
Att kontrollera om en sträng innehåller en substring är en av de mest grundläggande och ofta använda operationerna i Bash-skript.
När du har läst denna handledning bör du ha en god förståelse för hur du testar om en sträng innehåller en annan sträng. Du kan också använda andra kommandon som
awk
eller
sed
för testning.
Ledamöter av Europaparlamentet kommer att avgöra om en rad frågor, bland annat hur man reglerar telekomföretag i EU, hur man straffar företag som snedvrider konkurrensen, hur man delar radiofrekvenser som släpps av TV: s migrering till digital sändning och hur man skyddar medborgarnas data i den digitala tiden.
Men de är delade om huruvida IP-adresser ska ses som personuppgifter. "Vi kommer att be kommissionen att formellt lägga fram en rapport om detta", säger Malcolm Harbour, en brittisk konservativ parlamentsledamot som spelar en central roll för att hylla den så kallade telekomrevisionen genom parlamentet.
Hur man kontrollerar om en fil eller katalog finns i bash
Många gånger när du skriver Shell-skript kan du befinna dig i en situation där du behöver utföra en åtgärd baserad på om en fil finns eller inte. I Bash kan du använda testkommandot för att kontrollera om det finns en fil och bestämma filtypen.
Hur man använder sed för att hitta och ersätta sträng i filer
sed är en streameditor. Med sed kan du söka, hitta och ersätta, infoga och ta bort strängar och linjer. Det stöder grundläggande och utökade regelbundna uttryck som gör att du kan matcha komplexa mönster.







