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
出力:
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 個以上の部分文字列の出現を比較することを意味することに注意してください。
出力:
したがって、文字列から部分文字列を見つけるいくつかの方法を見ることができます。