ファイルから特定の文字列を検索するコマンドである 「grep」, 「fgrep」,「zgrep」についてまとめます.
前提
sample.txtの中身
$cat sample.txt
aa
bb
cc
a.
grep コマンド
grepの使い方の例を以下に挙げます.
//以下の2つのコマンドは同じ結果を得られる
$grep aa sample.txt // aaが検索したい文字列,sample.txtが対象ファイル
aa
$cat sample.txt | grep aa
aa
このコマンドを使うと,キーワードを持つ行だけを抽出することができます.
grepコマンドのオプション
自分が実務でよく使うオプションをいくつか挙げます.
オプション | 説明 |
-i | 大文字・小文字の区別をせずに検索する |
-n | 検索結果に行番号を表示 |
-A 数字 | 検索にかかった行の下にある行を指定数分だけ表示する |
-B 数字 | 検索にかかった行の上にある行を指定数分だけ表示する |
–color=always | 検索された文字列を色つきで表示する |
使い方の例を以下に示します.
例えば,c という文字の行とその1行下の行を知りたい場合は,以下のコマンドを使います.
$grep -A 1 b sample.txt
bb
cc
fgrepコマンド
このコマンドはgrepコマンドとほぼ同じ役割ですが,正規表現をしません.
そのため,メタ文字を含むキーワードを単なる文字列として抽出したい場合に便利です.
$grep 'a.' sample.txt
aa
a.
$fgrep 'a.' sample.txt
a.
grepでは正規表現として扱うため,.(ドット) をメタ文字,すなわち任意の1文字,として解釈して検索・抽出します.それに対し,fgrep は .(ドット) を単なる文字として検索・抽出します.
zgrepコマンド
このコマンドは,.gzで圧縮されたファイルの中から特定の文字列を含む行を抽出するためのコマンドです.
zgrep "文字列" XXX.gz
圧縮ファイルをいちいち開封せずに中身を見ることができて便利です.
まとめ
ファイルから特定の文字列だけを取り出すためのコマンドについてまとめました.
- grep コマンド
- fgrep コマンド
- zgrep コマンド
最後に.参考にしたテキストを以下に紹介します.試験対策が主目的の本ですが,Linuxの概要がまとめられていて,試験を受験しない方にもおすすめです.
リンク
リンク
少しでも参考になれば幸いです.