grep
は文字列から指定したパターンにマッチングした部分を抽出するコマンドである。パターンマッチングには正規表現も利用でき、非常に強力である。
基本の使い方として、
grep
コマンドに続いて、オプション、パターン、およびパターンマッチングを行う入力ファイル名を書く。
grep [options] "pattern" filename.txt
grep "NM_" sample.fa
sample.fa ファイル中に文字列 NM_ または nm_ を含む行を検索する場合は、大文字・小文字を区別しないオプション
i
を利用する。
grep -i "NM_" sample.fa
grep
でマッチングした行が画面上に出力される際に、パソコンの設定によるが、マッチングした部分がハイライトされたり、されなかったりする場合がある。マッチングした部分を明示的にハイライトさせたい場合は、
--color
オプションを付ける。
grep --color=always "NM_" sample.fa
マッチングしなかった行を出力する
指定したパターンにマッチングしなかった行を出力させるには、
-v
オプションを利用する。
grep -v "NM_" sample.fa
正規表現を利用してマッチングを行う
grep
コマンドの検索パターンに正規表現を用いることも可能である。正規表現を利用する場合、
grep -E
のようにオプションをつけて明示するとよい。
各行の先頭に「>」記号が付いている行を出力する場合は、
^
を利用して行の先頭であることを明示する。
grep -E "^>" sample.fa
各行の終わりが「mRNA」となっている行を出力する場合は、
$
を利用して行の終わりであることを明示する。
grep -E "mRNA$" sample.fa
NM_00001、NM_00002、NM_00003、NM_00004 および NM_00005 の 5 パターンにマッチングさせたい場合は以下のようにする。
grep -E vi"NM_0000[1-5]" sample.fa
OR マッチングする場合は正規表現の
|
を利用する。例えば、miRNA または circRNA を含む行をマッチングする場合は次のようにすることができる。
grep -E "miRNA|circRNA" sample.fa
\1 \2 \3\1 \2 \3後方参照
[ ][ ][ ]括弧内の任意の 1 文字
\{n, m\}\{n, \}{n, m}直前の 1 文字または 1 パターンの n 回以上かつ m 回以下の繰り返し
\{n, \}\{n, \}{n, }直前の 1 文字または 1 パターンの n 回以上の繰り返し
\{n\}\{n\}{n}直前の 1 文字または 1 パターンの n 回の繰り返し
\+\++直前の 1 文字あるいは 1 パターンの 1 回以上の繰り返し
\??直前の 1 文字あるいは 1 パターンの 0 回または 1 回だけ出現
\|\||2 パターンのうちどちら片方