grep

grep はテキストファイルから指定パターンにマッチした行を抽出するコマンドである。

マッチ行を表示

「multi.fa」ファイルに「NM_000001」を含む行を検索し、あれば出力する例。

grep "NM_000001" multi.fa

正規表現を利用

正規表現を利用して「NM_000001」〜「NM_000009」を含む行を検索する例。1〜9 は正規表現で「[0-9]」と書く。

grep "NM_00000[1-9]" multi.fa

マッチした行の行番号を出力

「NM_000001」にマッチする行があれば、その行の番号を出力する例。

grep -n "NM_000001" multi.fa

複数のファイルに対して grep 検索

ディレクトリにあるすべてのファイルに対して、「NM_000001」を含むかどうかを調べる例。

# ファイル名のみ出力
grep -l "NM_000001" *

# ファイル名とマッチした行数を出力
grep -c "NM_000001" *

マッチしない行を出力

指定したパターンにマッチしなかった行を出力。

grep -v "NM_000001" multi.fa

80 文字ずつ改行する

長い文字列からなる 1 行を 80 文字ずつに折り返す。

grep -oE '.{1,80}' multi.fa

grep のオプション

オプション機能
-c指定したパターンにマッチした行数を出力
-hファイル名を先頭に付ける
-i大文字と小文字を区別しない
-lファイル名のみを出力する
-nマッチした行の行番号を出力する
-sエラーを表示しない
-vパターンにマッチした行以外を出力する
-wパターンを単語としてマッチ

grep の正規表現

grep およびその他のスクリプト言語で利用できる正規表現。

grepsedawk
...
***
^^^
$$$
¥( ¥)¥( ¥)( )
\1 \2 \3\1 \2 \3\1 \2 \3
[ ][ ][ ]
¥{n, m¥}¥{n, m¥}{n, m}
¥{n, ¥}¥{n, ¥}{n, }
¥{n¥}¥{n¥}{n}
\+\++
\??
\|\||