[Linux]ファイルから特定の文字列を抽出するコマンド(grep,fgrep,zgrep)

記事内に広告が含まれています。

ファイルから特定の文字列を検索するコマンドである 「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検索された文字列を色つきで表示する
オプションの例. colorの前はハイフン2本であるあとに注意

使い方の例を以下に示します.

例えば,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の概要がまとめられていて,試験を受験しない方にもおすすめです.

少しでも参考になれば幸いです.

Linux
スポンサーリンク