Bash で文字列が部分文字列を含むかどうかを調べる
-
case
条件文を使用する(方法 1) -
if
ステートメントでワイルドカードを使用する(方法 2) -
Bash の
grep
コマンドを使用する(方法 3) -
正規表現演算子を使用する(
~=
)(方法 4)
文字列からサブ文字列を検索することは、文字列で最も頻繁に使用される操作です。このタスクを実行する方法はたくさんあります。
この記事では、特定の文字列に特定の部分文字列が含まれているかどうかを確認するための複数の 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
出力:
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
出力:
正規表現演算子を使用する(~=
)(方法 4)
正規表現演算子(~=
)と呼ばれる別の演算子があり、これを使用して 2つの文字列を比較し、文字列に部分文字列が含まれているかどうかを確認できます。
脚本:
#!/bin/bash
str='This is a bash tutorial'
substr='bash'
if [[ "$str" =~ .*"$substr".* ]]; then
echo "String contains the substring"
fi
条件ステートメントでは、regex 演算子によって右側の文字列が正規表現になり、記号 .*
は文字列内の 0 個以上の部分文字列の出現を比較することを意味することに注意してください。
出力:
したがって、文字列から部分文字列を見つけるいくつかの方法を見ることができます。
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn