Linuxコマンド集
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス

grep  文字列を検索する (1)

 構文  
grep [ -[[AB] ]num ] [ -[EFGBchilnsvwx] ] [ -e pattern | -f file ] [ files... ]

 オプション  
-G 検索に正規表現を使用できる
-E 検索に拡張正規表現を使用できる
-F 固定文字列の検索を行う
-num マッチした行から前後num行を同時に検索結果として表示する
-A num マッチした行から後num行を同時に検索結果として表示する
-B num マッチした行から前num行を同時に検索結果として表示する
-C マッチした前後2行を同時に検索結果として表示する
-b 各行の前に,ファイルの先頭からバイト単位のオフセット数を表示する
-n 各行の前に行番号を表示する
-c 検索条件にマッチした行数を表示する。-cvとするとマッチしなかった行数を表示する
-e pattern 検索条件を指定する
-f file 検索パターンとしてfileの内容を使用する
-h 検索結果の先頭にマッチしたファイル名を表示しない
-i 検索条件に大文字と小文字の区別をなくす
-l 検索条件にマッチしたファイル名を表示する。-lvとするとマッチしなかったファイル名を表示する
-q 検索結果を表示しない
-s エラー・メッセージを表示しない
-v マッチしない行を検索結果として表示する
-w パターン・マッチを,単語全体で行うようにする
-x 行全体を検索対象にする
files 検索するファイルを指定する

 説明  

ファイル中の文字列を検索する。検索パターンとして正規表現を使用できる。


 正規表現  
. 改行文字以外の任意の1文字
* 直前の1文字の0回以上の繰り返しに一致。直前の文字は正規表現でも構わない
^ 行の先頭を表す
$ 行の末尾を表す
[ ] かっこ内の任意の文字に一致。ハイフン(-)で範囲指定もできる。かっこ内の最初の文字に^を使用すると,意味が逆転する
+ 直前の文字の1個以上の連続
? 直前の文字の0または1文字にマッチ
pattern1|pattern2 pattern1またはpattern2のいずれかにマッチ
(pattern) patternをグループ化する
\ 正規表現に使われる記号を普通の文字として扱う

 使用例  
拡張子がtxtのファイルからhogeを検索
$ grep "hoge" *.txt

<P>または<p>のある行数を表示
$ grep -ci "<p>" index.shtml

httpdのプロセス情報を得る
$ ps aux | grep "httpd"


 関連事項  
|>ファイルから文字列を検索するどのような正規表現があるのか