コマンド_grep

CTF
ブログ

grepとは

パターンにマッチする行を表示する

-i大文字と小文字を区別しない
-n出力行頭に入力ファイルでの行番号を表示
-r (-R)ディレクトリ内も再帰的に読み込む
-vマッチしなかった行を出力
-E拡張正規表現を利用する
-Z圧縮ファイルを検索前に一度解凍する
-a検索ファイルが「テキストファイル」であると明示する(※)
(※)ファイルがバイナリファイルだと判断されると、「grep: (standard input): binary file matches」となる。

正規表現(少しだけ)

()グループ化(山田|やまだ)(太郎|たろう)
山田太郎、山田たろう
やまだ太郎、やまだたろう
|左右のどちらか山|川|海
山 or 川 or 海
?直前の表現が0回or1回山?
山がないか1つあるか
*直前の表現が0回以上山*
山が0個以上ある
+直前の表現が1回以上山+
山が1つ以上ある
.任意の一文字.
何か一文字ある
^行頭^あ
「あ」から始まる行
$行末ん$
「ん」で終わる行

例えば

「山」を含む行を検索(ex.ファイル名:example.txt)
  grep "山" example.txt
「ab」「aB」「Ab」「AB」いずれかにマッチする行を検索 
  grep -i ab example.txt
「#」で始まる行を省く(コメント行以外)
  grep -v '^#' example.txt
コメントと空行以外を抽出する ( ^$ は空行を表す )
  cat /etc/example/list.txt | grep -v ^# | grep -v ^$
大文字と小文字を区別せず「error」という文字列を見つける
  grep -i error /var/log/syslog

参考文献

コメント