HOWTO · Bash

Bash で文字列が部分文字列を含むかどうかを調べる

文字列に部分文字列が含まれているかどうかを確認するための Bash プログラミングチュートリアル。

このページの内容

文字列からサブ文字列を検索することは、文字列で最も頻繁に使用される操作です。このタスクを実行する方法はたくさんあります。

この記事では、特定の文字列に特定の部分文字列が含まれているかどうかを確認するための複数の Bash スクリプトベースの実装について説明します。

case 条件文を使用する(方法 1)

case は bash の条件付きステートメントであり、スクリプトに条件付きブロックを実装するために使用できます。このステートメントは、bash でサブストリングを見つけるために使用できます。

脚本:

#!/bin/bash

str='This is a bash tutorial'
substr='bash'

case $str in

  *"$substr"*)
    echo  "str contains the substr"
    ;;
esac

str と substr の 2つの文字列があります。case ステートメントを適用して、str に substr が含まれているかどうかを確認しました。

出力:

ユースケース条件ステートメント

if ステートメントでワイルドカードを使用する(方法 2)

if ステートメントでワイルドカードを使用して、文字列から部分文字列を見つけることもできます。サブストリングを見つける最も簡単な方法は、サブストリングの前後にワイルドカード記号のアスタリスク(*)を付けて、実際のストリングと比較することです。

脚本:

#!/bin/bash

str='This is a bash tutorial'
substr='tutorial'
if [[ "$str" == *"$substr"* ]]; then
  echo "String contains the sunstring"
else
  echo "String does'nt contains the substring"
fi

出力:

if ステートメントでワイルドカードを使用する

Bash の grep コマンドを使用する(方法 3)

grep コマンドは、ファイルまたは文字列から何かを検索するためにも使用されます。オプション -q があり、grep コマンドに出力を表示しないように指示します。true または false を返します。

脚本:

#!/bin/bash

str='This is a bash tutorial'
substr='tutorial'
if grep -q "$substr" <<< "$str"; then
  echo "String contains the substring"
fi

出力:

Bash の grep コマンドを使用する

正規表現演算子を使用する(~=)(方法 4)

正規表現演算子(~=)と呼ばれる別の演算子があり、これを使用して 2つの文字列を比較し、文字列に部分文字列が含まれているかどうかを確認できます。

脚本:

#!/bin/bash

str='This is a bash tutorial'
substr='bash'
if [[ "$str" =~ .*"$substr".* ]]; then
  echo "String contains the substring"
fi

条件ステートメントでは、regex 演算子によって右側の文字列が正規表現になり、記号 .*は文字列内の 0 個以上の部分文字列の出現を比較することを意味することに注意してください。

出力:

正規表現演算子を使用する

したがって、文字列から部分文字列を見つけるいくつかの方法を見ることができます。