Bashの文字列に部分文字列を含んでいるかどうかを確認する方法

最も一般的な操作のいずれかを使用してバッシュ文字列内の文字列を別の文字列が含まれているかどうかを決定することです。

この記事では、我々はあなたに文字列が部分文字列を含んでいるかどうかを確認するには、いくつかの方法を紹介します。

ワイルドカードを使用

最も簡単な方法は、*パッケージのサブアスタリスク(*)ワイルドカードを使用することで、文字列を比較しました。ワイルドカードは、ゼロ、一つまたはシンボルの複数の文字を表すために使用されます。

テストがtrueを返した場合、サブ文字列に含まれています。

次の例では、文字列STRは、サブストリングSUBを含んでいるかどうかを確認するif文と等価演算子(==)を使用します。

#!/ binに/ bashの

STR = 'GNU / Linuxは、オペレーティング・システムである'
SUB = 'Linuxの
場合は[[ "$ STR" == * "$のSUB" *]]; そして、
  「それはあります。」エコー
Fiの

場合は、スクリプトの意志出力の実行:

OutputItがあります。

オペレーターのユースケース

if文を使用することに加えて、あなたはまた、文字列が別の文字列が含まれているかどうかをチェックするcase文を使用することができます。

#!/ binに/ bashの

STR = 'GNU / Linuxは、オペレーティング・システムである'
SUB = 'Linuxの

ケース$ STRで

  * "$のSUB" *)
    エコー-n "それはあります。"
    ;;
ESAC

正規表現演算子を使用します

=〜正規表現演算子を使用して部分文字列があるかどうかを決定するために、文字列で指定した別のオプション。この演算子を使用する場合は、右側の文字列は正規表現として扱われます。

*改行以外の任意の文字のゼロ個以上を表します。

#!/ binに/ bashの

STR = 'GNU / Linuxは、オペレーティング・システムである'
SUB = 'Linuxの

もし[[ "$ STR" =〜* "$のSUB" *]。。]; そして、
  「それはあります。」エコー
Fiの

スクリプトは次をエコーし​​ます。

OutputItがあります。

使用をGrep

grepコマンドを使用することも、他の部分文字列を検索するために使用することができます。

次の例では、入力として文字列$ STRはgrepしすることになり、入力文字列で見つかった文字列$ SUBかどうかを確認します。このコマンドは、状況に応じて、trueまたはfalseを返します。

#!/ binに/ bashの

STR = 'GNU / Linuxは、オペレーティング・システムである'
SUB = 'Linuxの

もしgrepの-q "$のSUB" <<< "$ STR"; そして、
  「それはあります」エコー
Fiの

-Qオプションは、出力が省略さ、静かに実行するのgrepに指示します。

結論

文字列は、最も基本的で一般的な操作のbashスクリプトの一つである部分文字列を含んでいるかどうかをチェックします。

このチュートリアルを読んだ後、あなたは文字列が別の文字列が含まれているかどうかをテストする方法をよく理解している必要があります。また、このようなAWKやテストのためのsedなどの他のコマンドを使用することができます。

おすすめ

転載: www.linuxidc.com/Linux/2019-08/159866.htm
おすすめ