これを使うと、簡易なスクリプトを組み立てるだけで、いろんなテキスト編集、加工ができます。
先日、「AWK」の基本中の基本、AWKのイロハを記事にしました。
2024年6月8日付けの記事です。
⇒ こちらをご覧ください。
今回は、ちょっとだけその続き、補足です。
AWKは、テキストファイルを行(レコード)に分割して、上から順番に読み込んでいきます。さらにその行(レコード)をフィールドというものに分割します。フィールドとは、各行(レコード)が、スペースやタブ、カンマなどの区切り文字で分割された値のことです。
AWKは、各レコードを自動的にフィールドに分割し、それぞれのフィールドを、$1、 $2、 $3・・・という記号に代入します。 この記号は、フィールド変数と呼ばれるものです。
AWKのスクリプトのアクション部分に、
'{print $2,$3,$4}'
と記述すると、2番目、3番目、4番目のフィールドの値が、スペースで区切られて表示されます。このように、printの後ろに、フィールド変数をカンマ付きで並べることにより、各値がスペースで区切って出力されます。しかも、行の末尾には改行文字が付加されます。
ちなみに、
'{print $2 $3 $4}'
と、フィールド変数をスペースで区切って並べると、出力は逆にスペースで区切られることなく、連続した文字列になってしまいます。ここが、ちょっと紛らわしいところで、覚えるしかないところです。
さらに、AWKは、現在入力行(レコード)のフィールド数を、変数「NF」(number of fields)に格納します。
これを利用し、
'{print $NF}'
の記述で、末尾フィールドの値が出力されます。
前回記事の、「パターン」と「アクション」の2つで構成されるスクリプトのこと、それから今回記事の「レコード」「フィールド」のこと、これらを頭に入れれば、AWKを実地で試すことができるはずです。
前回も書きましたが、初めて自分で試してみて、思ったとおりの結果が出ると、ちょっとした感動を味わえます。AWKを扱える環境にある方は、実地に試してみるといいかと思います。
それでは、また次の記事で
■■■■ goosyun ■■■■
最近の「Ubuntu」カテゴリーもっと見る
最近の記事
カテゴリー
バックナンバー
人気記事