文字列の検索

文字列の検索には grep を使う.ディレクトリ pdb の中の全ファイルから 'SPACE GROUP:' という文字列を含む行を抜き出したいときは以下のようにする.

1|$grep "SPACE GROUP:" pdb/*
pdb/2ZU5.pdb:REMARK 290 SYMMETRY OPERATORS FOR SPACE GROUP: C 1 2 1
pdb/2ZZJ.pdb:REMARK 290 SYMMETRY OPERATORS FOR SPACE GROUP: P 21 21 21
pdb/2ZZR.pdb:REMARK 290 SYMMETRY OPERATORS FOR SPACE GROUP: P 32 2 1
.....
.....
.....

また,egrep を用いると,or 検索が可能になる.or 検索は検索したい文字列の間に '|' を加える.文字列 'foo' または 'bar' を含む行をディレクトリ baz 以下の全ファイルから抜き出したいときは以下のようにする.

1|$egrep "foo|bar" baz/*

文字列 'foo' および 'bar' を含む行をディレクトリ baz 以下の全ファイルから抜き出したいとき,すなわち and 検索は以下のようにパイプを使うのが便利である.コマンド grep では検索したい文字列にスペースが含まれても,正規表現 '\s' を用いずに直接スペースキーを入力することで検索できる.

1|$egrep foo baz/* |egrep bar

上のように指定したディレクトリの全ファイル中から文字列を検索する際にバイナリファイルにヒットする場合がある.これを避けるには -I オプションを利用する.

1|$egrep -I "ncbistdaa" ncbi-blast-2.2.30+-src/c++/*/*/*

特定の文字列が含まれていない行を検索したい場合は,-v オプションを用いる.

1|$egrep -v "hoge" fuga.txt

ヒットした文字または文字列を含む行とその1行下の行までを表示させるには以下のように打つ.一方で,'-B n' とすると,n行上の行まで表示される.

1|$egrep -A 1 "^>" hoge.fa
このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る