awkコマンドの使い方

awkコマンドの使い方
組込変数 意味 デフォルト値
$0,$1,$2… パイプで渡された値
FS 区切り文字(field separator) 半角スペース
OFS 出力時の区切り文字(output field separator) 半角スペース
RS (record separator) 改行
ORS (output record separator) 改行
$NF 最終フィールド
NR 現在行 1
FNR 現在行 1
FPAT フィールドパターン(fireld pattern)
ENVIRON 環境変数の連想配列

awkコマンドの基本構文

#以降は1行コメントになります。

各ブロックは不要なら省略可能です。

半角スペース区切りの数値をechoして、各々の数値をsummaryした結果を出力します。

sum変数をBEGIN句で初期化し、メインブロックで計算し、ENDブロックで出力します。

$0,$1,$2…変数

$0,$1,$2…と変数が用意されています。以下のようなイメージです。

awkコマンドの使い方

半角スペース区切りの数値をechoして、その結果をawkで受け取ります。

FS変数

BEGIN句でFS変数を初期化し、$1,$2などで標準出力します。区切り文字をカンマにして$1を出力します。

OFS変数

OFS変数はアウトプット時のセパレータです。以下では/にしています。

RS変数

区切り文字をRS変数で指定します。FS変数と似ていますが、RS変数で区切り文字を指定した場合は、出力は改行で区切られて出力されます。

ORS変数

出力時の区切り文字をORS変数で指定します。ORS=””にしてみます。

ORS=” “にしてみます。

NF変数

NF変数は最終フィールドを表す変数です。

NR変数

NR変数は複数行のファイルなどに対してawkコマンドを使用する際の現在行を表します。

以下の3行のCSVファイルがあります。

このファイルに対して先頭に行数を付けてみます。

FPAT変数

CSVを扱う際に、カンマを含む値がある場合にFS=”,”とした場合にうまく処理ができません。

フィールド値にカンマを含む可能性があるCSVを処理する場合はFPAT変数を使用します。

ENVIRON変数

ENVIRON変数は連想配列です。

環境変数(一部)
ENVIRON[“PWD”] /home/ec2-user
ENVIRON[“SHELL”] /bin/bash

ENVIRON変数の連想配列のキーをすべて出力します。

asorti関数で第一引数の配列のインデックスを第二引数の配列にプットしてソートします。

今度は逆に、ENVIRON変数の連想配列の値をすべて出力します。

asort関数で第一引数の配列の要素を第二引数の配列にプットしてソートします。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA