①特定の文字を含む行を検索する

grep(オプション) パターン ファイル名

例)
grep▲ORA-▲alert.log
「alert.log」から「ORA-」という文字列を含む行を抽出する
※▲はスペースを表しています。

■オプション
-h 複数のファイルを指定した場合に、抽出した行の先頭にファイル名を表示しない
-i パターンで検索する際、大文字、小文字を区別しない
-n パターンを含む行が検索したファイルの何行目にあるのかを表示する
-v パターンにを含まれない行を抽出する
-r サブディレクトリを含めて検索する
-B [数字] 該当する行の後のn行を表示する
-A [数字] 該当する行の前のn行を表示する
-[数字]   該当する前後のn行を表示する
 

■実行例
アラートログがあるディレクトリ内で「ORA-」という文字列を含むファイルを検索する。

# grep ORA- alert_orcl_1.log←「grep」コマンド実行

ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL…
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00313: open failed for members of log group 2 of thread 1
ORA-12012: error on auto execute of job “ORACLE_OCM”.”MGMT_CONFIG_JOB_2_1″
ORA-29280: invalid directory path

「ORA-」を含む行がファイル「alert_orcl_1.log」名と一緒に表示されます。

注意点としては、linuxは大文字と小文字を別の文字として扱います。

大文字と小文字を区別しないで検索する場合は、
オプション「-i」を付けて実行します。

grep -i “ORA-” *

行番号を表示する場合は、「-n」オプションを付けて下記のように実行します。
「grep -n “ORA-” *」
この行番号を付けることで、ファイル内の何行目に検索文字列があるのかが分かります。
—————————————————————–
# grep -n “ORA-” alert_orcl_1.log
356:ORA-1109 signalled during: ALTER DATABASE CLOSE NORMAL…
570:ORA-00313: open failed for members of log group 1 of thread 1
574:ORA-00313: open failed for members of log group 1 of thread 1
576:ORA-00313: open failed for members of log group 1 of thread 1
582:ORA-00313: open failed for members of log group 2 of thread 1
586:ORA-00313: open failed for members of log group 2 of thread 1
588:ORA-00313: open failed for members of log group 2 of thread 1
1954:ORA-12012: error on auto execute of job “ORACLE_OCM”.”MGMT_CONFIG_JOB_2_1″
1955:ORA-29280: invalid directory path
—————————————————————–

サブディレクトリ以下も含めて検索するには“-r”を使う

#grep -r crond /etc/init.d  <– -rオプションでサブディレクトリを含めて検索する

—————————————————————–

/etc/init.d/crond:# crond          Start/Stop the cron clock daemon.
/etc/init.d/crond:# Provides: crond crontab
/etc/init.d/crond:[ -f /etc/sysconfig/crond ] || {
/etc/init.d/crond:prog=”crond”
/etc/init.d/crond:exec=/usr/sbin/crond
/etc/init.d/crond:lockfile=/var/lock/subsys/crond
/etc/init.d/crond:config=/etc/sysconfig/crond
/etc/init.d/crond:    status -p /var/run/crond.pid $prog

 

—————————————————————–