Linux

grepの検索方法のまとめ

投稿日:2013年6月15日 更新日:

grep [検索文字列] [検索対象]
が基本ですが、検索対象はファイル内の文字列であったりファイル名であったりします。

ファイルの中の文字列を検索する

##特定のファイル内から一致する行
[root@centos log]# grep ntpd messages*
messages.1:Jun  3 18:14:17 localhost ntpd[2210]: Listening on interface wildcard, 0.0.0.0#123 Disabled
messages.1:Jun  3 18:14:17 localhost ntpd[2210]: Listening on interface wildcard, ::#123 Disabled
##カレントディレクトリを対象とする
[root@centos]# grep test *
##もしくは
[root@centos]# grep test ./*
test1:test1
test2:test2
##カレント配下のディレクトリを対象とする
##-Rオプションを使用して、指定したディレクトリを再帰的に検索します。
[root@centos]# grep -R test .
##もしくは
[root@centos]# grep -R test ./*
./test1:test1
./dir1/test3:test3
./test2:test2
##特定のファイルは検索対象外にする(ログファイル等)
## | grep -v "*log*" はダブルクォーテーションで囲む
[root@centos]# grep -R test . | grep -v "*log*"

ファイル名を検索する

##lsでファイル名を表示させてそれをgrepします。
##カレントディレクトリを対象とすう
[root@centos]# ls | grep test
test1
test2
##カレント配下のディレクトリを対象とする
##findでファイル名を検索し、それをgrepします。
[root@centos]# find ./ -type f | grep test
./test1
./dir1/test3
./test2

ディレクトリ名を検索する

##findでディレクトリ名を検索し、それをgrepします。
##カレント配下のディレクトリを対象とする
[root@centos]# find ./ -type d | grep dir
./dir1
./dir1/dir2
./dir1/dir2/dir3

よく使用するオプション

##-i ・・・大文字小文字を区別しない
##-iオプションがなければ大文字小文字は区別されます
[root@centos]# grep TEST ./*
##-iオプションがあれば大文字小文字は区別されません
[root@centos]# grep -i TEST ./*
./test1:test1
./test2:test2
##-v ・・・パターンにマッチしなかった行を抜き出して表示する
[root@centos]# grep -v TEST ./*
./test1:test1
./test2:test2
##-r ・・・検索対象にディレクトリを指定するとディレクトリ内のファイルを再帰的に検索してくれる
[root@centos]# grep -r test .
./test1:test1
./dir1/test3:test3
./dir1/dir2/dir3/text4.txt:test4
./test2:test2
##-n ・・・マッチした行と一緒に行番号を表示
[root@centos]# grep -n ntpd /var/log/messages
531:Jun  3 18:11:45 localhost ntpd[2211]: ntpd exiting on signal 15
818:Jun  3 18:14:17 localhost ntpd[2209]: ntpd 4.2.2p1@1.1570-o Thu Jan 22 02:51:26 UTC 2009 (1)
##-h 複数のファイルを指定した場合に、抽出した行の先頭にファイル名を表示しない 
[root@centos]# grep test ./*
./test1:test1
./test2:test2
[root@centos]# grep -h test ./*
test1
test2

Gooleアドセンス用336

Gooleアドセンス用336

-Linux

執筆者:

関連記事

linux

wgetの利用方法

linuxにある強力なget、post等ができる便利なコマンドがwgetです。 私はvmware上で起動させているlinux(CentOS)から、このコマンドでサーバーへgetやpostを行ってよくテ …

linux

linuxでSSH公開キー認証ユーザーを作成する

INDEX1 目的2 ユーザーの作成3 ユーザーの公開鍵と秘密鍵の作成4 作成した公開鍵をサーバーに配置5 SSH公開キー認証の設定6 rootに昇格可能ユーザーを制限7 追加ユーザーにsudoの設定 …

linux

linuxの最大ファイルサイズの確認

INDEX1 ファイルシステムの種類を調べる2 ブロックサイズを調べる3 linuxのカーネルバージョンを調べる ファイルシステムの種類を調べる 以下ext3での最大ファイルサイズの調べ方です。 df …

linux

WinSCPの文字化け対応方法

WindowsからLinuxへファイルを転送するのに使用するアプリはWinSCPが最も有名なのではないでしょうか。 ただLinuxのOSを日本語でインストールすると、文字化けする場合があります。 少し …

linux

169.254.0.0 は APIPA (Automatic Private IP Addressing)

routeコマンドをしてみて下さい。 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use …