猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

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

執筆者:

関連記事

PHPでは文字列の比較に==を使用してはいけない

==を使用しても、文字列の比較にはなりません。 必ず「===」もしくは「strcmp」を使いましょう! 否定する場合は「!==」です。 もし「==」とすれば”00″は&#822 …

linux

VMWare Workstation 14 Playerが利用できない…

INDEX1 VMWareでブリッジ接続できな2 VMWare Workstation 14 PlayerはCPUが未対応だった3 VMWare Workstation 12 Playerにダウングレ …

opensslによる自己署名によるSSL

INDEX1 1.秘密鍵作成のための擬似乱数の情報を生成2 2.サーバ用秘密鍵(server.key)の作成3 3.認証局への署名要求書(server.csr)の作成4 4.署名要求書(server. …

linux

samba(共有)の設定手順

INDEX1 (1)smbをyumでインストールする2 (2)linuxユーザーを追加する。3 (3)linxユーザーのパスワード4 (4)linuxユーザーをsmbaのユーザーに追加する5 (5)設 …

linux

viで行番号を表示させる

カーソルで移動しながらエラー行までいったりするのは大変です。 おまけにcatコマンドとは違い、画面のスクロールが利用できません。 一応右下に、カーソルの行が表示されているのですが、やっぱり行番号が必用 …