LoginSignup
0
1

More than 3 years have passed since last update.

Linux grepコマンドと正規表現

Posted at

grepコマンド

ファイルの中からデータを検索する。
|(パイプ)grepとすることで標準入力から入ったデータに対して検索を行うことができる。

grep [オプション] 検索条件 [指定ファイル]

正規表現

正規表現を用いることでより高度な検索をすることができる。

^ →行頭を表す
$ →行末を表す
. →任意の一字を意味する
* →直前文字の 0 回以上の繰り返しを意味する
[...] →.. の中の任意の一字を意味する
[^...] →.. の文字が含まれないことを意味する。
¥ →正規表現の記号をエスケープする。

ex)

$ grep ^xy /etc/*
:
/etc/services:xyplex-mux 173/tcp

上記のコマンドは/etc配下にあるファイルで行頭がxyで始まるものを検索している。

オプション

-e
文字列を検索パターンとして扱う

-i
検索パターンと入力ファイルの双方で英大文字と小文字の区別をしない

-v
検索パターンとマッチしなかった行を選択する

ex)

$ grep -i hostname /etc/*
(/etc ディレクトリにある、大文字または小文字の hostname という文字列を含むファイル)
/etc/rc.sysinit: HOSTNAME=localhost
(略)
/etc/rc.sysinit: # Reset the hostname.
(略)
$ grep abc /etc/* | grep -v tcp
(/etc ディレクトリにある、 abc という文字列を含むが tcp という文字列は含まないファイル)
(略)
/etc/services:abcvoice-port 3781/udp # ABCvoice server port

またよく使う例として、標準出力に対してgrepで検索をかけることが多い。
ex)

$ ls /usr/bin/ | grep -e d$
:
:
xxd
yppasswd

/user/binにあるコマンドを一覧表示(標準出力)し、その中からファイル名がdで終わるファイルを検索している。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1