grep - 特定の文字や単語を含む行を抽出する

grepコマンド
機能:特定の文字や単語を含む行を抽出する
書式:grep[オプション]検索文字[ファイルのパス]
 ※[ ]内はなくても良い

■grep はテキストファイルから文字や単語、文字列を抽出、表示するコマンドである。例としてmyfile.txtの中から"ABC"という文字列を探す場合は以下のようにする。
$grep "ABC" myfile.txt

■逆に含まない行を検索するには「-v」オプションを指定する。
$grep -v "ABC" myfile.txt

■指定した文字列がテキストファイルの何行目にあるかを表示する。
$grep -n "ABC" myfile.txt

■指定したディレクトリ以下の全てのテキストファイルを対象に検索を実行する。
$grep -r . -n "ABC" myfile.txt

■testdataディレクトリから「sample」という文字列を内容に含むファイルを検索する。
$find testdata/ -type f -print0 | xargs -0 grep -n "sample"
xargsを参照

■テキストファイルの中から文字列を検索するシェルスクリプト。エディタで保存して、「chmod +x スクリプトファイル名」で実行権を与えれば、検索コマンドになる。
#!/bin/sh
if [ $# -lt 1 ]; then
echo "$0 SearchWord [Grep Option(eg. -i)]"
exit 1
fi
SEARCH=$1
OPTION="-n $2"
echo -n "Current Path:"
echo `pwd`
echo "search word:${SEARCH}"
echo
find . -type f|while read i; do file "${i}"|grep " text"> /dev/null && echo "${i}"; \
done|while read i; do grep ${OPTION} "${SEARCH}" "${i}" && echo "${i}" && \
echo ;done