シェルスクリプトで指定文字列がファイルに含まれるかを確認したい
シェルスクリプトで指定文字列がファイルに含まれるかを確認したい場合は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
読みやすい方を使う。
\第一線のプログラマーの行動原理を学べる!/