Linux
CentOS6.5

サーバー管理者におすすめ、grepコマンドとその関連コマンドの簡単な使い方

More than 3 years have passed since last update.

簡単にファイルの文字列を検索できる"grep"コマンドや、その関連コマンドを紹介していきます

grep

基本 part1

$ grep [パターン] [ファイル名]

上記の用にコマンドを実行すると、指定したファイルのなかにあるパターンの文字列を含む行を検索、表示できます

$ grep hello hello.txt

これが例とすると…

まずコマンドを入力した時点で選択されているディレクトリ内で”hello.txt”というファイルが検索され、その中の"hello"という文字列を含む行が結果として表示されます

基本 part2

基本 part1にオプションという表現を付け加えてみます

$ grep [オプション] [パターン] [ファイル名]

パターンとファイル名は先ほど紹介したものと同様です。

オプションはすでにlinixやunix系のOSでコマンドを使用したことのある方なら分かると思います

解説より先に例をあげていきます

$grep -c hello hello.txt

こういうコマンドを入力したときに表示される結果は

helloを含む行の総数です。

先ほどのコマンドと違うのは"-c"ですね

これがオプションというものです

"-c"以外にも様々なオプションがあるのでぜひ調べて見てはいかかでしょうか

ちょっと応用

次のように入力するとどうなるでしょうか??

$ grep "^T" log.txt

これはまず選択しているディレクトリ内で"log.txt"というファイルを検索し

そのファイルの中で"行頭"に"T"を含む行を結果として表示します

これらの^と言った表現を正規表現といい、組み合わせて使用することでより自分のニーズにあった結果を表示できます

関連コマンド

最後にトラブルシューティングも含めて関連コマンド紹介します

検索したいファイルの場所が分からない!!

find

findコマンドはある指定したファイル名のファイルがどこにあるかを検索します。

$ find [ディレクトリパス] -name [ファイル名]

ディレクトリパスとは…

検索したいファイルがあるであろうおおまかな場所と考えてください

例えば./homeやdesktopの様な

$ find /home -name hello

このコマンドを使用し、ファイルの場所が分かれば

そのディレクトリに移動し、grepコマンドを使って文字列検索を行えます

grepコマンド以外にもgccなども使えるのではないでしょうか??

ディレクトリ移動ができない!!



cd



ディレクトリ移動がしたいときは"cd"というコマンドを使用します

$ cd [ディレクトリ名]

これではわかりにくいので、具体的な例をあげます

$ cd デスクトップ

日本語環境下であればこれでデスクトップに移動します

日本語以外の言語環境であれば適時、言語を使い分けてください

$ cd ..

また上記のコマンドで一つ前のディレクトリに移動します

その他

覚えていて損のない表現

コマンドと言うか、表現と言えばよいのでしょうか

コマンドを使う上で役に立つ表現があります。

パイプというものです

パイプとはl(エル)では無く

キーボードで¥マークの上にある|です

パイプとは一度の入力で複数のコマンドを使用するためにあります

$ find [ディレクトリパス] -name [ファイル名] | grep [パターン] [ファイル名]  

この組み合わせはあまり使えませんが、この用に一度の実行でfindとgrepを両方使用できるようにできる表現もあります