Linuxでのgrepコマンドの使い方をわかりやすく解説

齐天大圣
リリース: 2020-09-17 09:13:35
オリジナル
3429 人が閲覧しました

Linux システムを学ぶには、grep コマンドをマスターする必要があります。 grep コマンドは、ファイルまたは標準出力内で一致する行を検索するために使用されますが、その利点は正規表現をサポートしていることです。日常業務において、grep は間違いなく最もよく使用されるコマンドの 1 つです。

注: この記事では grep の使用法のみを紹介し、正規表現については紹介しません。

# 一般的なオプションのいくつかとその意味を見てみましょう:

Options

  • ##-i 検索時に大文字と小文字を区別しない

  • -n 一致する行をすべてリストし、行番号を表示します。

  • -v 選択を反転します

  • -c一致する行数のみを出力します

  • -l 一致するファイル名のみをリストし、特定の一致する行はリストしません

  • -h 実行します複数のファイルをクエリするときにファイル名を表示しない

  • -r 再帰的検索

  • -q 結果の出力を無効にし、終了ステータスは検索を示します成功しましたか?

  • --color=auto 見つかったキーワードを色で表示します

  • -E, --extended-regexp PATTERN はい 拡張可能な正規表現式 (ERE と省略)

  • -B, --before-context=NUM テキストで始まる NUM 行を出力

  • -A, - -after-context=NUM テキストで終わる NUM 行を印刷します

grep の使用例をいくつか示します:

php .ini にはタイムゾーン設定があることがわかっています。明確ではありません。タイムゾーンしかわかりません。構成情報を見つけたい場合は、grep を使用して見つけることができます

# 加上-i选项,忽略大小写
# grep -i timezone /usr/local/php/etc/php.ini 
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = PRC
ログイン後にコピー

grep は複数のファイルの検索をサポートしています

# 这里我们加上-n选项,输出文件的行号
# grep -in stdio itoa.c quicksort.c 
itoa.c:2:#include <stdio.h>
quicksort.c:1:#include <stdio.h>
ログイン後にコピー

逆の選択 - v が使用されています。プログラムを実行し、そのプログラムがプロセス内にまだ存在するかどうかを確認したい場合は、次のメソッドを使用できます。

# ps aux | grep curl.php 
root     14374 98.3  1.2 277844 12396 pts/0    R+   07:54   1:07 php curl.php
root     14404  0.0  0.0 112664   984 pts/2    R+   07:55   0:00 grep --color=auto curl.php
ログイン後にコピー

ここに問題があります。フィルターするには -v を使用する必要があります。 grep 自体のプロセスを終了します。

# ps aux | grep curl.php | grep -v grep 
root     14374 98.5  1.2 277844 12396 pts/0    R+   07:54   2:36 php curl.php
ログイン後にコピー

最後のコマンドに root を含む行数をカウントしたいので、ここでは -c オプションを使用する必要があります。

# last | grep -c root
353
ログイン後にコピー

ファイル内の特定のテキストをバッチで置換する必要があることがよくありますが、これらのテキストがどのファイルに含まれているかをどのように確認すればよいでしょうか。 grep は、-l オプションを使用して実行できます

# find . -type f -exec grep -l define {} \;
./find.c
./itoa2.c
./wc.c
./test.c
./wordcnt.c
./longestline.c
./cal.c
./sortline2.c
./sortline.c
./found.c
./atof.c
ログイン後にコピー

別の例を見てみましょう。この例では、-E 拡張通常ルールを使用しています。php.ini ファイル内のコメント行と空白行をフィルターで除外したいと考えています。

grep -vE &#39;^;|^$&#39; /usr/local/php/etc/php.ini
ログイン後にコピー

一般的に使用されるオプション -r もあり、これを使用すると、現在のディレクトリ内のすべてのファイルとサブディレクトリ ファイルを再帰的に検索できます。次に、Web サイトのディレクトリにどのようなフッター ファイルがあるかを確認します。次のコマンドを使用して、

grep -rn footer ./
ログイン後にコピー
を見つけます。

以上がLinuxでのgrepコマンドの使い方をわかりやすく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート