AWKの入出力関数とコマンド実行機能 - AWK
o 「入力 = 読み込み」「出力 = 書き出し」です。**** 入出力の手引き
入出力とコマンド実行の注意点まとめ
ファイルからデータを読み込む
タブ区切りでファイルを読み込む
▼パターンの書き方は、制御文関連へ
AWKでバイナリ出力する(mawk, Gawk専用)
AWKでバイナリ入力する(Gawk専用)
改行コード。Windows / UNIX / Mac の違いについて
GawkでUTF-8のファイルを読み込む時の注意点
Gawkで、UTF-8のファイルからBOMを除去する
+ Gawkでインターネットアクセスする方法はこちら
**** 組み込み関数
o 入出力する
getline = ファイル(やパイプ)から1行読み込む
print = ファイルなどに書き出す
printf = 文字列を組み立ててファイルなどに書き出す
close = 開いたファイル(やパイプ)を閉じる
fflush = 出力バッファーを空にする
o コマンドを実行する
system = OSのコマンドを実行して、終了コードを返す
+ この他に、getline関数とパイプを併用する方法があります。
**** 関係する変数
o 入出力結果
$0 = 最後に読み込んだデータ、1行分
$1 = 最後に読み込んだデータの1列目
NF = 最後に読み込んだ行の列数
RT = 最後に読み込んだ行の改行文字(Gawk専用)
FNR = 現在読み込み中のファイルから読み込んだ行数
NR = これまでに読み込んだ行数
ERRNO = 入出力系の最新エラーメッセージ (Gawk専用)
o 入出力する為に使う値
FS = 読み込んだ行を列に分割する時の区切り文字。$1, $2に関係します。
FPAT = 読み込んだ行を列に分割する時の列取り出し規則(Gawk専用。バージョン4以降)
RS = 1行読み込む時の改行文字
FILENAME = 現在読み込み中ファイルの名前
ARGV = AWK起動時に指定した入力ファイル名とコマンド名
OFS = printを使って書き出す時の列区切り文字
ORS = printを使って書き出す時の改行文字
OFMT = printを使って数値1つだけを書き出す時の書式
CONVFMT = 数値を文字列に自動変換する時の書式
IGNORECASE = 文字列比較の時に、大文字小文字を区別させない(Gawk専用)
FIELDWIDTHS = 固定長ファイルを読み込む為の設定(Gawk専用)
BINMODE = バイナリモードで読み書きする(mawk,Gawk専用)
**** 関係する固定値
/inet = AWKからインターネットにアクセスする(Gawk専用)
/dev/stdout = 標準出力を示すファイル名
/dev/stderr = 標準エラー出力を示すファイル名
/dev/null = 常に空のファイル名(Gawk専用)
AWKプログラムで使用可能な特殊ファイル名。標準入力、標準出力、標準エラー出力など
**** 関係する演算子
o ファイル入出力
< = ファイルからの入力
> = ファイルに出力。上書きモード
>> = ファイルに出力。後ろに追加
o コマンドとのパイプ
| = パイプ。左の実行結果を右に渡す
|& = 双方向通信(Gawk専用)
+ Windows 版 Gawk は、インターネット接続のみ
+ Unix 版 Gawk は、インターネット接続と、同一コマンドへの双方向通信
**** メモ
o mawk系と他のプログラムをパイプで繋ぐ時、「-W interactive」オプションを付けて実行した方が良い場合があります。
+ 何も指定しないと、mawkは、出来るだけ纏めて処理しようとするからです。
名前 | Gawk on Windows 3.1.7 | Gawk for Windows 3.1.6 | mawk32 1.3.3 | Mawk for Windows 1.3.3 | awk (May 1, 2007) | 説明 |
---|---|---|---|---|---|---|
入出力 | ||||||
getline | ○ | ○ | ○ | △ (パイプ 不可) | ○ | ファイル(やパイプ)から1行読み込む |
○ | ○ | ○ | △ (パイプ 不可) | ○ | ファイルなどに書き出す | |
printf | ○ | ○ | ○ | △ (パイプ 不可) | ○ | 文字列を組み立ててファイルなどに書き出す |
close | ○ | ○ | ○ | △ (パイプ 不可) | ○ | 開いたファイル(やパイプ)を閉じる |
fflush | ○ | ○ | ○ | △ (パイプ 不可) | ○ | 出力バッファーを空にする |
コマンド実行 | ||||||
system | ○ | ○ | ○ | × | ○ | OSのコマンドを実行して、終了コードを返す |
変数。入力結果 | ||||||
$0 | ○ | ○ | ○ | ○ | ○ | 最後に読み込んだデータ、1行分 |
$1 | △ (注記 あり) | △ (注記 あり) | ○ | ○ | △ (注記 あり) | 最後に読み込んだデータの1列目 |
NF | ○ | ○ | ○ | ○ | ○ | 最後に読み込んだ行の列数 |
RT | ○ | ○ | × | × | × | 最後に読み込んだ行の改行文字 |
FNR | ○ | ○ | ○ | ○ | ○ | 現在読み込み中のファイルから読み込んだ行数 |
NR | ○ | ○ | ○ | ○ | ○ | これまでに読み込んだ行数 |
ERRNO | ○ | ○ | × | × | × | 入出力系の最新エラーメッセージ |
変数。入出力する為に使う値 | ||||||
FS | ○ | ○ | ○ | ○ | ○ | 読み込んだ行を列に分割する時の区切り文字。$1, $2に関係します |
RS | ○ | ○ | ○ | ○ | ○ (1文字 のみ) | 1行読み込む時の改行文字 |
FILENAME | ○ | ○ | ○ | ○ | ○ | 現在読み込み中ファイルの名前 |
OFS | ○ | ○ | ○ | ○ | ○ | printを使って書き出す時の列区切り文字 |
ORS | ○ | ○ | ○ | ○ | ○ | printを使って書き出す時の改行文字 |
OFMT | ○ | ○ | ○ | ○ | ○ | printを使って数値1つだけを書き出す時の書式 |
CONVFMT | ○ | ○ | ○ | ○ | ○ | 数値を文字列に自動変換する時の書式 |
FIELDWIDTHS | ○ (文字数) | ○ (バイト数) | × | × | × | 固定長ファイルを読み込む為の設定 |
BINMODE | ○ | ○ | △ (書き出しのみ) | ○ | × | バイナリモードで読み書きする |
名前 | Gawk on Windows 3.1.7 | Gawk for Windows 3.1.6 | mawk32 1.3.3 | Mawk for Windows 1.3.3 | awk (May 1, 2007) | 説明 |
---|---|---|---|---|---|---|
入力 | ||||||
/dev/stdin | ○ | ○ | × | × | ○ | 標準入力 = コマンドプロンプト画面からの読み込み |
/dev/fd/0 | ○ | ○ | × | × | × | 標準入力。/dev/stdin と同じです |
出力 | ||||||
/dev/stdout | ○ | ○ | ○ | ○ | ○ | 標準出力 = コマンドプロンプト画面への書き出し |
/dev/stderr | ○ | ○ | ○ | ○ | ○ | 標準エラー出力 = コマンドプロンプト画面への書き出しその2 |
/dev/null | ○ | ○ | × | × | × | どこにも出力しない |
/dev/fd/1 | ○ | ○ | × | × | × | 標準出力。/dev/stdout と同じです |
/dev/fd/2 | ○ | ○ | × | × | × | 標準エラー出力。/dev/stderr と同じです |
/dev/tty | × | × | × | × | × | 現在表示中のコマンドプロンプト画面に出力。バックグラウンドで使用不可 |
入力。プロセス情報など取得(非推奨) | ||||||
/dev/pid | ○ | ○ | × | × | × | 自分のプロセスID。変数「PROCINFO」の使用を推奨 |
/dev/ppid | × | × | × | × | × | 親プロセスのID。変数「PROCINFO」の使用を推奨 |
/dev/pgrpid | × | × | × | × | × | 自分のプロセスのグループID。変数「PROCINFO」の使用を推奨 |
/dev/user | × | × | × | × | × | 1行にユーザーIDなど4情報。$1 = uid / $2 = euid / $3 = gid / $4 = egid。変数「PROCINFO」の使用を推奨 |
==
関連ページ:
▼AWKの関数、変数、制御文(▼ABC順)
▼AWKプログラムを書く
▼AWK
▼制作メモ
> ▼AWKのインターネット接続機能(Gawk専用)
▼AWKの国際化対応機能 i18n(Gawk専用)
▼AWKのパターンと制御文
+
▼AWKの数値計算関数と関連機能
▼AWKの文字列操作関数と関連機能
▼AWKの時刻取得関数と関連機能