強力な grep コマンド

高洛峰
リリース: 2016-12-13 14:46:29
オリジナル
1980 人が閲覧しました

grep コマンドについてはネット上にたくさんの説明があり、基本的に man コマンドの意訳です。正直、読んでも忘れてしまいます。個人的には、コマンドを学習する最善の方法は、実際の環境をシミュレートし、使用される可能性のあるコマンドの組み合わせをいくつか書き留めてから、それをゆっくりと理解することだと考えています。少なくとも私はそうしてここに来ました。最初は基本的に暗記でしたが、時間が経つにつれて徐々に視野を広げていきました。さて、本題に入り、素晴らしい grep コマンドについて話しましょう。

grep は一般的な正規表現パーサーの略称であり、単純に Linux システムの検索コマンドとして理解できます。次に、例に直接進みましょう:

1. 指定された文字列

を検索します。 /etc/passwd ファイルで、文字列 guolei を検索します:

grep 'guolei' /etc/passwd
ログイン後にコピー

guolei の引用符は次のとおりです。ただし、検索文字列にスペースが含まれている場合、または正規表現を使用している場合は、スペースを追加する必要があります。

2. 複数のファイルで指定された文字列を検索します

現在のディレクトリで、文字列 guolei を含むファイルを検索します:

grep -r guolei *
ログイン後にコピー

注: -r は recursive の略で、再帰的検索を意味します。

現在のディレクトリの .java ファイルで、guolei:

grep -r guolei *.java
ログイン後にコピー

という文字列を含むファイルを検索します。場合によっては、検索結果がさらに多くなる場合があります。less コマンドを組み合わせて結果を表示することもできます

grep -r guolei *.java | less
ログイン後にコピー

、またはさらに多くの検索結果が表示される場合もあります結果、ファイル名をリストするだけで済みます:

grep -rl guolei *.java
ログイン後にコピー

特定のディレクトリで指定された文字列を含むファイルを検索する必要があることがよくあります。上記のコマンドは再帰的に検索できないことに注意してください。たとえば、文字列 guolei:

find . -type f -name *.java -exec grep -il guolei {} \;
ログイン後にコピー

3 を含む現在のディレクトリ内のすべての .java ファイルを再帰的に検索したいとします。 i は Ignore case の略で、大文字と小文字を区別しないことを意味します。

4. 検索結果の行番号をリストします

検索結果で、文字列が表示される行番号をリストします:

grep -ri guolei *
ログイン後にコピー

-n は、行番号を意味する number の省略形であることに注意してください。 。

5. 逆検索

実際の開発では、特定のディレクトリ内で特定の文字列を含まないファイルを検索する必要がある場合があります:

grep -rn guolei *.java
ログイン後にコピー

注: -v is reverse リバースという意味の略称。上記の例では、現在のディレクトリで guolei を含まないファイルを検索します。

6. パイプラインで grep を使用する

パイプライン コマンドでも grep を使用することが多く、これが最も一般的です。たとえば、現在のシステムで mysql プロセスを検索する場合:

grep -riv guolei * | less
ログイン後にコピー

、または現在のディレクトリで html で終わるファイルをリストする場合:

ps -ef | grep mysql
ログイン後にコピー

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