ホームページ 運用・保守 Linuxの運用と保守 シェルプログラミング - grepコマンドの使い方は?

シェルプログラミング - grepコマンドの使い方は?

Jun 20, 2017 am 11:12 AM
grep shell 使用 注文 プログラミング

正規表現を学ぶ前に、まずそれを明確にし、心に留めておく必要があります:

Linux では、ワイルドカードはシェルによって解釈されますが、正規表現はコマンドの説明によって解釈されます。 2つを混同します。覚えて! ! !

通常、 3 つのテキスト処理ツール/コマンド: grep、sed、awk があり、その 3 つすべてが正規表現を解釈できます。 grepコマンドの使い方を紹介します。

1. grep コマンドを使用して、ファイル内のコンテンツを検索します

grep および egrep コマンドは、1 つ以上のファイルのコンテンツ内の特定の文字パターンを検索できます、および正規表現とも呼ばれます。 パターンには、単一の文字、文字列、単語、または文を指定できます。

正規表現は、文字列のセットを記述するパターンです。正規表現の構築は、演算子を使用して小さな式を新しい式に結合することにより、数式に基づいてモデル化されます。正規表現は、パターンの生成に使用されるプレーン テキスト リテラルまたは特殊文字のいずれかです。検索パターンをさらに定義するために、grep コマンドは次の正規表現メタキャラクター (ワイルドカードとも呼ばれます) をサポートしています。

ps: 正規表現言語は、リテラル (通常の) テキスト文字とメタキャラクターという 2 つの基本的な文字タイプで構成されます。メタキャラクターは正規表現の処理能力を与えます。いわゆるメタキャラクタは、正規表現において特別な意味を持つ特殊文字を指します。これを使用して、ターゲット オブジェクト内で先頭の文字 (つまり、メタキャラクタの前にある文字) の出現パターンを指定できます。

c*: 0 個以上の文字と一致します c

.: 任意の 1 つの文字とのみ一致します (改行を除く)

[xyz]: 角括弧

の任意の文字と一致します[^xyz]: 角括弧内の文字を除くすべての文字と一致します

^: 行の先頭をロックします

$: 行の末尾をロックします

基本的な正規表現では、 *、+、{}、|、() などのメタ文字は元の意味を失っています。元の意味を復元したい場合は、*、+ などのバックスラッシュを前に付ける必要があります。

grep コマンドは、各ファイルまたは標準出力で特定のパターンを検索するために使用されます。 grep コマンドを使用すると、指定した文字パターンを含む各行が画面に表示されます。 grep コマンドの構文形式は次のとおりです。

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

このうち、オプションgrep コマンドの検索方法を変更できます。-w オプションを除き、他のすべてのオプションは egrep および fgrep コマンドで使用できます。 grep コマンドの一般的なオプションは次のとおりです:

-c (count): パターンを含む行数のみをリストします

-i (ignore): パターン内の文字の大文字と小文字を無視します

-l (リスト): 一致する行を含むファイル名のリスト

-n: 一致する行の前の行番号のリスト

-v: 一致するパターンのない行のリスト (反転)

-w:式を完全な単語として検索し、部分的に一致する行を無視します

-q : サイレント モード、出力なし、実行が成功したかどうか、つまり、目的のコンテンツがフィルターされているかどうかを判断するには $? を使用する必要があります

-A n : 一致した場合、一致した行と次の n 行が一緒に印刷されます。

-B n : 一致した場合、一致した行と前の n 行が印刷されます。

-C n : 一致した場合、一致した行とその前後の n 行が一緒に印刷されます

ps: 複数のファイルが検索された場合、grep コマンドの結果ファイル内で見つかったパターンに一致するファイルのみを表示します。

単一のファイルを検索している場合、grep コマンドの結果には、一致するパターンを含むすべての行が表示されます。

以上がgrepコマンドの基本的な使い方です。ただし、単純な正規表現では検索したいコンテンツを見つけられない場合があります。モード 1 とモード 2 の両方を満たすデータ行を検索したい場合は、egrep コマンドが便利です。

egrepコマンドの構文形式はgrepコマンドと同じです。ただし、egrep コマンドは、拡張正規表現のメタキャラクターを使用して、1 つ以上のファイルの内容から特定のパターンを検索するために使用されます。拡張正規表現メタキャラクタには、grep コマンドで使用される正規表現メタキャラクタが含まれており、さらに次のような追加のメタキャラクタも追加されます。

+: 1 つ以上の先頭文字と一致します。 文字

a|b: a と一致します。または b

(RE): 括弧内の正規表現 RE と一致し、egrep コマンドの使用法を理解しています。 grep コマンドのすべてのオプション egrep を使用できるため (egrep の方が強力です)、便宜上、egrep コマンドを使用して皆さんに説明します:

例 1: ファイル内の root を含む行を表示します。 /etc/passwd

例 2: /etc/passwd 内の bash を含む行をすべて出力し、その上下 2 行の内容も出力します

例3: /etc /passwdがnologin

example4を含むいくつの行を示します: /etc /passwdのどの線がルートを含んで追加して追加します行番号 1 つの出力

例 5:

新しいユーザー abominable、a​​bominate、anomie、atomize を作成し、それらに一致する正規表現を作成します

例 6: 新しいユーザーを作成します Alex213sb、Wpq2222b、yH438PIG、egon666、egon

ユーザー名が文字 + 数字 + 文字で構成される行をフィルターで除外します

例7: /etc ディレクトリ内の root を含むすべてのファイル名を表示します

例 8: /etc/ssh/sshd_config 内のすべてのコメントとすべての空白行をフィルターで除外します

上記の例はほんの一部です。熱心に練習すれば、すぐに grep コマンドの使い方をマスターできるようになります ^^

以上がシェルプログラミング - grepコマンドの使い方は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? Apr 26, 2024 am 09:40 AM

MetaMask (中国語ではリトル フォックス ウォレットとも呼ばれます) は、無料で評判の高い暗号化ウォレット ソフトウェアです。現在、BTCC は MetaMask ウォレットへのバインドをサポートしており、バインド後は MetaMask ウォレットを使用してすぐにログイン、値の保存、コインの購入などが可能になり、初回バインドで 20 USDT のトライアル ボーナスも獲得できます。 BTCCMetaMask ウォレットのチュートリアルでは、MetaMask の登録方法と使用方法、および BTCC で Little Fox ウォレットをバインドして使用する方法を詳しく紹介します。メタマスクウォレットとは何ですか? 3,000 万人を超えるユーザーを抱える MetaMask Little Fox ウォレットは、現在最も人気のある暗号通貨ウォレットの 1 つです。無料で使用でき、拡張機能としてネットワーク上にインストールできます。

win11 ウィジェットを削除する方法 Windows 11 ウィジェットをアンインストールする 1 つのコマンド機能のヒント win11 ウィジェットを削除する方法 Windows 11 ウィジェットをアンインストールする 1 つのコマンド機能のヒント Apr 11, 2024 pm 05:19 PM

ウィジェットは Win11 システムの新機能で、デフォルトでオンになっていますが、ウィジェットをあまり使用しないユーザーや、スペースを占有するためウィジェットを無効にしたいというユーザーがいることは避けられません。以下のエディターで操作方法が説明されているので、実際に試してみることができます。ウィジェットとは何ですか?ウィジェットは、Windows デスクトップ上のお気に入りのアプリやサービスの動的コンテンツを表示する小さなカードです。これらはウィジェット ボードに表示され、興味を反映するようにウィジェットの検索、固定、固定解除、配置、サイズ変更、カスタマイズを行うことができます。ウィジェット ボードは、使用状況に基づいて関連するウィジェットとパーソナライズされたコンテンツを表示するように最適化されています。タスクバーの左隅からウィジェットパネルを開くと、ライブ天気が表示されます

正規表現を使用してPHP配列から重複した値を削除します 正規表現を使用してPHP配列から重複した値を削除します Apr 26, 2024 pm 04:33 PM

正規表現を使用して PHP 配列から重複値を削除する方法: 正規表現 /(.*)(.+)/i を使用して、重複値を照合して置換します。配列要素を反復処理し、preg_match を使用して一致をチェックします。一致する場合は値をスキップし、一致しない場合は重複値のない新しい配列に追加します。

Bitget Launchpool とは何ですか? Bitget Launchpool の使用方法? Bitget Launchpool とは何ですか? Bitget Launchpool の使用方法? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool は、すべての暗号通貨愛好家向けに設計された動的プラットフォームです。 BitgetLaunchpool はそのユニークな製品で際立っています。ここでは、トークンを賭けて、エアドロップ、高額な報酬、初期参加者限定の寛大な賞金プールなど、より多くの報酬のロックを解除できます。 BitgetLaunchpool とは何ですか? BitgetLaunchpool は、ユーザーフレンドリーな利用規約でトークンをステークして獲得できる暗号通貨プラットフォームです。 Launchpool に BGB またはその他のトークンを投資することで、ユーザーは無料のエアドロップや収益を受け取り、寛大なボーナス プールに参加する機会が得られます。質入れられた資産からの収入は T+1 時間以内に計算され、報酬は以下に基づいて計算されます。

PHP関数とシェル関数の違い PHP関数とシェル関数の違い Apr 24, 2024 pm 06:39 PM

PHP 関数とシェル関数の主な違いは、セキュリティ (PHP 関数の方が安全です)、信頼性 (シェル関数はオペレーティング システムによって異なります)、機能性 (シェル関数はより強力ですが、シェルによって制限されます)、およびパフォーマンス (PHP 関数は通常、より高速です)と複雑さ(シェル関数はより複雑です)。これらはどちらもファイル システム、プロセス、コマンドの操作に使用されますが、PHP 関数は組み込みであり、シェル関数は外部シェルを通じて呼び出されます。したがって、サーバー ファイルのダウンロード シナリオでは、file_put_contents() 関数の方が安全であり、wget コマンドの方がより柔軟です。

プログラミングは何のためにあるのか、それを学ぶと何の役に立つのか? プログラミングは何のためにあるのか、それを学ぶと何の役に立つのか? Apr 28, 2024 pm 01:34 PM

1. プログラミングは、Web サイト、モバイル アプリケーション、ゲーム、データ分析ツールなど、さまざまなソフトウェアやアプリケーションの開発に使用できます。その応用分野は非常に幅広く、科学研究、医療、金融、教育、エンターテイメントなど、ほぼすべての業界をカバーしています。 2. プログラミングを学ぶことは、問題解決スキルと論理的思考スキルを向上させるのに役立ちます。プログラミング中、問題を分析して理解し、解決策を見つけてコードに変換する必要があります。この考え方は、分析能力と抽象能力を養い、実際的な問題を解決する能力を向上させることができます。

Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Python による問題解決: 初心者プログラマーとして強力なソリューションをアンロックする Oct 11, 2024 pm 08:58 PM

Python は、問題解決の初心者に力を与えます。ユーザーフレンドリーな構文、広範なライブラリ、変数、条件文、ループによる効率的なコード開発などの機能を備えています。データの管理からプログラム フローの制御、反復的なタスクの実行まで、Python が提供します

C++ プログラミング パズルのコレクション: 思考を刺激し、プログラミング スキルを向上させます C++ プログラミング パズルのコレクション: 思考を刺激し、プログラミング スキルを向上させます Jun 01, 2024 pm 10:26 PM

C++ プログラミング パズルは、フィボナッチ数列、階乗、ハミング距離、配列の最大値と最小値などのアルゴリズムとデータ構造の概念をカバーします。これらのパズルを解くことで、C++ の知識を強化し、アルゴリズムの理解とプログラミング スキルを向上させることができます。

See all articles