Linux 正規表現チュートリアル: Grep 正規表現の例

Linux の正規表現とは何ですか?

Linux の正規表現 は、データの検索や複雑なパターンのマッチングに役立つ特殊文字です。正規表現は、「regexp」または「regex」と短縮されます。これらは、grep、bash、rename、sed などの多くの Linux プログラムで使用されます。

正規表現の種類

理解を容易にするために、さまざまな種類の正規表現を XNUMX つずつ学習してみましょう。

クリック こちら ビデオにアクセスできない場合

基本的な正規表現

正規表現を使用して一般的に使用されるコマンドには、tr、sed、vi、および grep。 以下に、基本的な正規表現の一部を示します。

シンボル Descriptイオン
. 任意の文字を置き換えます
^ 文字列の先頭と一致します
$ 文字列の末尾に一致します
* 前の文字と XNUMX 回以上一致します
\ 特殊文字を表す
() グループ正規表現
? 正確に XNUMX 文字と一致します

例を見てみましょう。

cat サンプルを実行して既存のファイルの内容を確認します

基本的な正規表現

文字「a」を含むコンテンツを検索します。

基本的な正規表現

'^' は文字列の先頭に一致します。 で始まるコンテンツを検索しましょう

基本的な正規表現

文字で始まる行のみがフィルタリングされます。 先頭に文字「a」を含まない行は無視されます。

別の例を見てみましょう –

基本的な正規表現

t で終わる行のみを選択します。 $

基本的な正規表現

間隔の正規表現

これらの式は、文字列内の文字の出現数を示します。 彼らです

表現 説明
{NS} 「n」回出現する直前の文字と正確に一致します
{n、m} 「n」回出現する前にある文字と一致しますが、m 回を超えません
{n、} 前の文字が「n」回以上出現する場合にのみ一致します。

例:

文字「p」を含むすべての行をフィルターで除外します。

間隔の正規表現

文字「p」が文字列内に 2 回続けて出現することを確認したいとします。 この場合、構文は次のようになります。

cat sample | grep -E p\{2}

間隔の正規表現

注: これらの正規表現には -E を追加する必要があります。

拡張正規表現

これらの正規表現には、複数の表現の組み合わせが含まれています。 それらのいくつかは次のとおりです。

表現 説明
\+ 前の文字の XNUMX つ以上の出現に一致します
\? 前の文字の XNUMX 回または XNUMX 回の出現に一致

例:

すべての文字「t」を検索

拡張正規表現

文字「a」が文字「t」の前にある行を除外したいとします。

次のようなコマンドを使用できます

cat sample|grep "a\+t"

拡張正規表現

ブレースの拡張

中括弧展開の構文は、中括弧「{}」内の項目のシーケンスまたはカンマ区切りのリストです。 シーケンス内の開始項目と終了項目は XNUMX つのピリオド「..」で区切られます。

いくつかの例:

ブレースの拡張

上記の例では、echo コマンドは中括弧展開を使用して文字列を作成します。

概要

  • 正規表現は、文字列内のパターンをチェックするために使用される文字のセットです。
  • 「正規表現」や「正規表現」とも呼ばれます。
  • スクリプトを書くには正規表現を学ぶことが重要です
  • 基本的な正規表現には次のようなものがあります。
シンボル Descriptイオン
. 任意の文字を置き換えます
^ 文字列の先頭と一致します
$ 文字列の末尾に一致します
  • いくつかの拡張正規表現は次のとおりです。
表現 説明

\+

前の文字の XNUMX つ以上の出現に一致します
\? 前の文字の XNUMX 回または XNUMX 回の出現に一致
  • いくつかの間隔正規表現は次のとおりです。
表現 説明
{NS} 「n」回出現する直前の文字と正確に一致します
{n、m} 「n」回出現する前にある文字と一致しますが、m 回を超えません
{n、} 前の文字が「n」回以上出現する場合にのみ一致します。
  • 中括弧展開は文字列を生成するために使用されます。 XNUMX つの文字列から複数の文字列を作成するのに役立ちます。