1. ホーム
  2. bash

[解決済み] Bashを使ってファイルに特定の文字列が含まれているかどうかを確認する方法

2022-03-16 08:34:14

質問

bashでファイルに特定の文字列が含まれているかどうかをチェックしたいのですが、どうすればいいですか?このスクリプトを使いましたが、うまくいきません。

 if [[ 'grep 'SomeString' $File' ]];then
   # Some Actions
 fi

私のコードのどこがおかしいのでしょうか?

どうすればいいですか?

if grep -q SomeString "$File"; then
  Some Actions # SomeString was found
fi

は必要ありません。 [[ ]] ここで 直接コマンドを実行するだけです。追加 -q オプションは、見つかったときに表示される文字列が不要な場合に使用します。

は、その grep コマンドは、終了コードに 0 または 1 を返します。 検索結果 何か見つかった場合は0、そうでない場合は1です。

$ echo hello | grep hi ; echo $?
1
$ echo hello | grep he ; echo $?
hello
0
$ echo hello | grep -q he ; echo $?
0

の条件として、コマンドを指定することができます。 if . コマンドの終了コードで0を返した場合は、その条件が真であることを意味し、そうでない場合は偽となります。

$ if /bin/true; then echo that is true; fi
that is true
$ if /bin/false; then echo that is true; fi
$

ご覧のように、ここではプログラムを直接実行します。追加の [] または [[]] .