知っておくとちょっと便利!ファイル内の文字列を検索する grep コマンド

今号では、grep コマンドの使い方やオプションについてご紹介します!

grep コマンドとは

grep コマンドは、ファイルの内容から特定の文字列を検索する事ができるコマンドです。
find コマンドと似ていますが、大きな違いとしてはファイル内の文字列を検索できる点になります。

基本の書式

“grep ファイル名” コマンドを実行すると、指定したファイルの中から文字列を検索します。
例えば、test.txt というファイルから abc という文字列を検索する場合、以下のようになります。

$ cat test.txt
abc
def
ghi
abcdefghi
$ grep abc test.txt
abc
abcdefghi

grep コマンドでは検索結果を行単位で表示するため、検索結果は abc が含まれる行 abcabcdefghi が該当します。

grep コマンドのオプション

次に、grep コマンドで使用可能なオプションをご紹介します。
オプションには多くの種類がありますが、よく使用されると考えられるものを抜粋してご紹介します。

  • 複数の文字列で検索する (or 検索)
    -e オプションを指定すると、検索したい文字列を複数指定できます (-e オプション 1つにつき、1つの文字列)。
    例えば、test.txt から ab または bc の、いずれかの文字を含む行を検索する場合、以下のようになります。
    $ grep -e ab -e bc test.txt
    abc
    abcdefghi
    

    なお、and 検索したい場合は | (パイプ) を使用し、ひとつめの grep コマンドの結果を次の grep コマンドへ渡すようにします。

    $ grep abc test.txt | grep def
    abcdefghi
    
  • 検索結果に行番号を表示する
    -n オプションを指定すると、検索結果に加えて行番号を表示します。
    例えば、test.txt から abc という文字列を検索した場合、検索結果の左側に該当する文字列の行番号 (今回の場合ですと 1と 4) が表示されます。
    $ grep -n abc test.txt
    1:abc
    4:abcdefghi
    
  • 一致しないものを検索する
    -v オプションを指定すると、条件に一致しない行のみを表示します。
    例えば、test.txt から -v オプション付きで abc という文字列を検索する場合、以下のように abc 以外の文字列を含む行のみが表示されます。
    $ grep -v abc test.txt
    def
    ghi
    
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です