このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンドの基本:正規表現を利用する場面

正規表現を利用する場面

 正規表現は、テキスト検索や置換を効率的に行うための強力なツールです。これまでに grep コマンドでの正規表現の利用例を見てきましたが、正規表現は grep 専用の記法ではなく、他にも多くのコマンドやアプリケーションで利用できます。

 たとえば、viエディタlessコマンドでは、/ を入力することでテキスト検索を行うことができます。この際に、検索パターンとして文字列だけでなく正規表現を利用することができます。これにより、より柔軟で高度な検索が可能になります。

以下では、正規表現を他のコマンドで利用する例を紹介します。

サンプルテキストファイルの作成

まず、検索例で使用するテキストファイル example.txt を作成します。

user01@ubuntu:~$ nano example.txt

example.txt の内容

Cl
Col
Cool
Coool
Cooool
Coooooool
Coil
Coal
Call
Cell
Curl
Cowl
Bol
LinuxLinux
Linux Linux

viエディタでの正規表現の利用

vi エディタを起動して、正規表現を使用した検索を行います。

user01@ubuntu:~$ vi example.txt

コマンドモードで、/\vCoo*l と入力し、Enter キーを押します。

  • \v は「very magic」の略で、正規表現を簡潔に記述できるモードです。
  • パターン Coo*l は、Co の後に o が0回以上繰り返され、最後に l が続く文字列にマッチします。

検索結果として、最初のマッチ箇所にカーソルが移動します。

Cl
Col
Cool   ← ここにカーソルが移動
Coool
Cooool
Coooooool
Coil
Coal
Call
Cell
Curl
Cowl
Bol
LinuxLinux
Linux Linux

    終了する場合は、:q と入力して Enter キーを押します。

    :q

    lessコマンドでの正規表現の利用

    less コマンドでも正規表現を利用した検索が可能です。

    user01@ubuntu:~$ less example.txt

    /Coo*l と入力して、Enter キーを押します。

    • パターンは前述と同じです。

    マッチする箇所がハイライト表示されます。

    Cl
    Col          ← ここがハイライトされます
    Cool         ← ここがハイライトされます
    Coool        ← ここがハイライトされます
    Cooool       ← ここがハイライトされます
    Coooooool    ← ここがハイライトされます
    Coil
    Coal
    Call
    Cell
    Curl
    Cowl
    Bol
    LinuxLinux
    Linux Linux
    • n キーで次のマッチ箇所に移動できます。

    終了する場合は、q キーを押します。

    不要なファイルの削除

    作業が完了したら、作成したファイルを削除します。

    user01@ubuntu:~$ rm example.txt

    その他の正規表現の利用場面

    正規表現は他にも多くの場面で利用されています。

    • sed コマンド:ストリームエディタで、テキストの検索・置換に正規表現を使用します。
    • awk コマンド:パターン指向のテキスト処理が可能で、正規表現でパターンを指定できます。
    • プログラミング言語:Perl、Ruby、Java、Python など、多くの言語で正規表現を扱うための機能が用意されています。

     このように、正規表現が利用できる分野は非常に幅広く、テキスト処理を行う上で必須の知識と言えます。

    正規表現をAIに考案してもらう

     正規表現はさまざまな組み合わせが可能で、使いこなすことで作業効率を大幅に向上させることができます。しかし、条件にマッチする正規表現を考えることはパズルを解くような難解さがあります。ですが、現在では、AIの普及により難解な正規表現を考案してもらうことができます。

     皆さんも、手元にあるテキストファイルでさまざまな正規表現による検索をAIで尋ねてみてください。難しい条件にマッチする正規表現もあっという間に作り出してくれることでしょう。

    まとめ

    • 正規表現は grep コマンド以外でも幅広く利用されています。
    • vi エディタや less コマンドで正規表現を使うことで、より高度なテキスト検索が可能です。
    • sedawk、各種プログラミング言語など、多くの場面で正規表現は重要な役割を果たします。
    • 正規表現を習得することで、テキスト処理の効率が飛躍的に向上します。

    正規表現の知識を深め、さまざまな場面で活用していきましょう。