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

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

Bashで文字列を操作するときの最も一般的な操作の1つは、文字列に別の文字列が含まれているかどうかを判断することです。

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

ワイルドカードの使用#

最も簡単な方法は、部分文字列をアスタリスクのワイルドカード記号(アスタリスク)で囲むことです* 文字列と比較します。ワイルドカードは、0、1つ以上の文字を表すために使用される記号です。

テストがtrueを返した場合 、サブストリングはストリングに含まれています。

以下の例では、ifステートメントと等式演算子(==)を使用しています。 )サブストリングSUBかどうかを確認します 文字列STR内にあります :

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'
if [[ "$STR" == *"$SUB"* ]]; then
  echo "It's there."
fi

実行すると、スクリプトは次のように出力します。

It's there.

ケース演算子の使用#

ifステートメントを使用する代わりに、caseステートメントを使用して、文字列に別の文字列が含まれているかどうかを確認することもできます。

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

case $STR in

  *"$SUB"*)
    echo -n "It's there."
    ;;
esac

正規表現演算子の使用#

指定された部分文字列が文字列内にあるかどうかを判断する別のオプションは、正規表現演算子=~を使用することです。 。この演算子を使用すると、正しい文字列が正規表現と見なされます。

アスタリスクが続くピリオド.* 改行文字を除くすべての文字の0回以上の出現に一致します。

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

if [[ "$STR" =~ .*"$SUB".* ]]; then
  echo "It's there."
fi

スクリプトは次のようにエコーします:

It's there.

Grepの使用#

grepコマンドを使用して、別の文字列内の文字列を検索することもできます。

次の例では、文字列$STRを渡します。 grepへの入力として、文字列$SUBかどうかを確認します 入力文字列内にあります。コマンドはtrueを返します またはfalse 必要に応じて。

#!/bin/bash

STR='GNU/Linux is an operating system'
SUB='Linux'

if grep -q "$SUB" <<< "$STR"; then
  echo "It's there"
fi

-q オプションは、出力を省略するために、grepに静かにするように指示します。

結論#

文字列に部分文字列が含まれているかどうかを確認することは、Bashスクリプトで最も基本的で頻繁に使用される操作の1つです。

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

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


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

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

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

  1. Bashでファイルが空かどうかを確認するには?

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

  3. bash - 部分文字列の文字列インデックス位置を見つける

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

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

  3. bashコマンド文字列の逐語的な文字を確認するにはどうすればよいですか?