Linux grep 文字列の検索と抽出

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

    rss
programing image

grepコマンドは、ファイル内の検索だけじゃありません。コマンド結果(標準出力)だって検索・抽出できます。

Linux中級者以上になるとコマンド結果の抽出はよく使います。

grepコマンドの検索は行単位です。

行の中に〇〇が含まれているか?

条件に合った行だけを抽出。

します。たったこれだけのコマンドです。

ファイル内検索

まずひとつは、ファイル内の検索です。grepコマンドの初級の使い方です。

grep [option] pattern file_name
optionオプション。
省略可。
pattern検索パターン。
正規表現も使える。
file_name検索するファイル名
grep test01 test.txt
----- test01 -----

test.txtファイル内で 'test01' のある行だけを抽出します。

他にもいろんなことができるのでこちらをどうぞ。

コマンド結果の検索

grepコマンドは、ファイル内の検索だけじゃありません。コマンドの実行結果(標準出力)もできます。

command | grep [option] pattern
commandLinuxコマンド。
optionオプション。
省略可。
pattern検索パターン。
正規表現も使える。

パイプ(|)を使ってコマンド結果の検索を行います。grepコマンドではファイルを指定しないことに注意。

ファイルを指定するとコマンド結果は無視され、ファイル内検索の結果が出力されます。

Linuxの中級者以上は、ほぼ毎日使っているくらい当たり前の方法です。

yum list installed | grep php
kusanagi-php7.noarch                  7.3.7-1                        @kusanagi
php.x86_64                            5.6.36-1.el7.remi              @remi-php56
php-cli.x86_64                        5.6.36-1.el7.remi              @remi-php56
php-common.x86_64                     5.6.36-1.el7.remi              @remi-php56
php-devel.x86_64                      5.6.36-1.el7.remi              @remi-php56
php-fedora-autoloader.noarch          1.0.0-1.el7.remi               @remi
php-fpm.x86_64                        5.6.36-1.el7.remi              @remi-php56
php-gd.x86_64                         5.6.36-1.el7.remi              @remi-php56
php-mbstring.x86_64                   5.6.36-1.el7.remi              @remi-php56
php-mcrypt.x86_64                     5.6.36-1.el7.remi              @remi-php56
php-mysqlnd.x86_64                    5.6.36-1.el7.remi              @remi-php56
php-opcache.x86_64                    5.6.36-1.el7.remi              @remi-php56
php-pdo.x86_64                        5.6.36-1.el7.remi              @remi-php56
php-pear.noarch                       1:1.10.5-6.el7.remi            @remi
php-pecl-apcu.x86_64                  4.0.11-2.el7.remi.5.6          @remi-php56
php-pecl-jsonc.x86_64                 1.3.10-2.el7.remi.5.6          @remi-php56
php-pecl-jsonc-devel.x86_64           1.3.10-2.el7.remi.5.6          @remi-php56
php-pecl-zip.x86_64                   1.15.2-1.el7.remi.5.6          @remi-php56
php-process.x86_64                    5.6.36-1.el7.remi              @remi-php56
php-xml.x86_64                        5.6.36-1.el7.remi              @remi-php56
php-xmlrpc.x86_64                     5.6.36-1.el7.remi              @remi-php56

CentOSにインストールされているパッケージからphpプログラム関連を抽出しています。

ちなみに、さっきのtest.txtの検索もできます。

ファイル内検索
cat test.txt | grep test01
----- test01 -----

よく使うオプション

grepコマンドでよく使うオプションをご紹介します。

-i大文字と小文字を区別しない。
-x行の完全一致。
-Gパターンに基本正規表現を使う。
-Eパターンに拡張正規表現を使う。
-vパターンに一致しないものを抽出。
条件の逆が欲しいとき使う。
-rディレクトリ指定のとき、サブディレクトリも含める。
(再帰検索)
-R再帰検索でシンボリックリンク先も含める。
php -i | grep enabled | grep -iE '(bcmath|ctype|json|mbstring|openssl|pdo|tokenizer|xml)'
BCMath support => enabled
ctype functions => enabled
DOM/XML => enabled
Multibyte decoding support using mbstring => enabled
json support => enabled
libXML streams => enabled
OpenSSL support => enabled
PDO support => enabled
PDO Driver for MySQL => enabled
PDO Driver for PostgreSQL => enabled
PDO Driver for SQLite 3.x => enabled
OpenSSL support => enabled
SimpleXML support => enabled
Tokenizer Support => enabled
XMLReader => enabled
XMLWriter => enabled

例は、Laravelフレームワークで必要なphpプラグインが入っているか確認しています。

ほかにもいろんなオプションがありますが、普段使うのはこれくらいです。

最近ITカテゴリでよく読まれている記事です。
domain image

ドメイン取得の意味が分からない人へ。王道の方法を紹介します。

ドメインの登録業者を選ぶのに悩む必要はないです。サイトを簡単に早く公開するには全くいらないことで、むしろ邪魔です。『お名前.com』というサービスは必ず耳にします。そのお名前.comのメリットとデメリットと一緒に、ドメインの意味が分からない人が一番失敗しないドメインの取得方法を紹介します。

tadtadya.com
SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

top
この記事を気に入ったらぜひシェアも!!