シェルスクリプトで指定文字列がファイルに含まれるかを確認したい
シェルスクリプトで指定文字列がファイルに含まれるかを確認したい場合はgrepコマンドの終了ステータスを確認する。
#!/bin/bash
grep 検索文字列 ファイル名
if [ $? -eq 0 ]; then
echo "検索文字列が見つかりました"
fi
これを実行するとgrepで引っかかった行が標準出力に出力されるので煩わしい。
標準出力に出さない-qオプション
grepコマンドの-qオプションを使用すると検索結果を標準出力に出さない。
#!/bin/bash
grep -q 検索文字列 ファイル名
if [ $? -eq 0 ]; then
echo "検索文字列が見つかりました"
fi
標準出力を/dev/nullに流す
grepコマンドの標準出力を/dev/nullに流す方法もある。
#!/bin/bash
grep 検索文字列 ファイル名 > /dev/null
if [ $? -eq 0 ]; then
echo "検索文字列が見つかりました"
fi
if の条件で直接 grep
ifの条件で直接grepを使用する方法もある。
#!/bin/bash
if grep -q 検索文字列 ファイル名; then
echo "検索文字列が見つかりました"
fi
#!/bin/bash
if grep 検索文字列 ファイル名 > /dev/null; then
echo "検索文字列が見つかりました"
fi
読みやすい方を使う。
\第一線のプログラマーの行動原理を学べる!/
