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 パターンのうちどちら片方