GNU/Linux >> Linux の 問題 >  >> Linux

文字列にBashの部分文字列が含まれているかどうかを確認する方法

したがって、長い文字列があり、この文字列にbashスクリプトにサブ文字列が含まれていることを確認する必要があります。

bashシェルのサブストリングをチェックする方法は複数あります。最初にいくつかの簡単な例を示し、次に実際のシナリオでこの概念を使用するクールなbashスクリプトを示します。

ifelseステートメントを使用してbashのサブストリングをチェックする

bashの条件ステートメントに精通している場合は、次の方法で文字列に部分文字列が含まれているかどうかを確認できます。

if [[ $fullstring == *"$substr"* ]];
部分文字列をチェックする簡単な例

ここでは二重角かっこが必要です。他のツールを使用しないため、これはネイティブな方法だと思います。上記のスニペットを適切な例で説明しましょう。

長い文字列で変数を初期化します:

[email protected]:~$ fullstring="This is a string with a stretch"

次に、「stretch」という単語をsubstr1という変数内に保存します。 :

[email protected]:~$ substr="stretch"

部分文字列を比較してみましょう:

[email protected]:~$ if [[ $fullstring == *"$substr"* ]]; then

ここで、*は0個以上の文字を意味します。 bashスクリプトの引用符の概念に精通していることを願っています。引用符内の$substrは、その値に置き換えられます。

基本的に、文字列全体がxxxxsubstrxxxxタイプのパターンと一致するかどうかを確認しています。

次のような変数を介して使用する代わりに、部分文字列を直接使用することもできます。

[email protected]:~$ if [[ $fullstring == *"stretch"* ]]; then

あなたは要点を理解します。サブストリングが見つからない場合に代替メッセージを表示するelseステートメントを使用してこのスクリプトを完成させます。

#!/bin/bash

fullstring="This is a string with a stretch"
substr="stretch"

if [[ $fullstring == *"$substr"* ]]; then
        echo "Found $substr!"
else
        echo "$substr not found!"
fi

上記のシェルスクリプトを実行すると、部分文字列が見つかることが簡単にわかります。

[email protected]:~$ bash substr.sh
Found stretch!

bashで部分文字列を見つけるためのより良い実例

部分文字列は、スクリプトでユーザーと「対話」するのに非常に役立ちます。 readコマンドを使用して、bashスクリプトがユーザー入力を受け入れるようにします。

echo "Hey there..what is your name?"
read Name
echo "Hello "$name"! The Matrix Resurrections trailer is here! Is your pill Red or Blue?"
read Pill
if [[ $Pill == *"Red"* || $Pill == *"red"* ]]; then
  echo "Welcome..to the real world "$Name"!"
else
  echo "Wake Up "$Name"!"
fi

実行可能権限を付与し、スクリプトを実行します:

[email protected]:~$ chmod +x makeyourchoice.sh
[email protected]:~$ ./makeyourchoice.sh

上記のスクリプトの出力:

Hey there..what is your name?
avimanyu
Hello avimanyu! The Matrix Resurrections trailer is here! Is your pill Red or Blue?
I have Red pill
Welcome..to the real world avimanyu!

ここでは、大文字と小文字を区別する可能性のある2つの可能性に注意することで、if条件を少し改善しました。 Redのみ ここの部分文字列です。しかし、red 可能な入力でもあります。そこで、別の条件を追加しました。 || 「または」を示します。 Redと入力した場合 、それは部分文字列です。ただし、red 1つではないので、追加する必要がありました。

grepコマンドを使用してbashでサブストリングを検索する

bashの文字列から部分文字列を見つける別の方法があります。この方法でgrepコマンドを使用します:

if grep -q "$substr" <<< "$fullstring"; then echo "Found"; fi

q オプションは、grepがクワイエットモードになり、出力が表示されないことを意味します。 2つだけでなく3つあることに注意してください。

この簡単なチュートリアルが、文字列内の特定の部分文字列を探すのに役立つことを願っています。ご質問やご提案がございましたら、下にコメントを残してください。ところで..どのピルを選びましたか?選択しましたか?


Linux
  1. Bashにシェルショックの脆弱性があるかどうかを確認する方法は?

  2. シェルスクリプトBashでサブストリングをチェックする方法は?

  3. Bashで文字列を16進数として読み取る方法は?

  1. Bashスクリプトで文字列を分割する方法

  2. cat << EOFはbashでどのように機能しますか?

  3. ssh-agent が既に bash で実行されているかどうかを確認するには?

  1. Pythonで文字列に部分文字列が含まれているかどうかを確認する

  2. Bashで文字列の長さを見つける方法[クイックヒント]

  3. Linux の Bash で syslog を確認するには?