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 つの文字列から複数の文字列を作成するのに役立ちます。