2010年6月9日水曜日

AWKの文字列操作関数と関連機能 - AWK

AWKの関数、変数、制御文 ▲
**** 文字列操作の手引き
文字列操作関数使用時の注意点まとめ
文字列を組み立てる
   + 速度比較。文字列の組み立て
文字列から文字を1つずつ取り出す
文字列中で使用出来る特殊文字
▼正規表現
ツール。文字列からアスキーコードを調べます(String to ASCII)


**** 組み込み関数
o 調べる
length = 文字列や配列の長さを調べる
index = 文字列の登場位置を調べる
match = 正規表現の登場位置を調べる

o 取り出す
substr = 文字列の一部を取り出す
int = 実数や文字列を整数化する
strtonum = 10進数、8進数、16進数の文字列を数値に変換する(Gawk専用)
split = 文字列を分割する
patsplit = 文字列を分割する。FPAT版(Gawk専用。バージョン4以降)
sprintf = 文字列を組み立てる

o 置き換える
gsub = 文字列を置き換える
sub = 文字列を、最初の1つだけ置き換える
gensub = n番目に見つかった文字列を置き換える(Gawk専用)
toupper = アルファベットを大文字にする
tolower = アルファベットを小文字にする


**** 関係する変数
o 更新する値
$0 = 最後に入力したデータ、1行分。対象文字列の指定が無い時に、使われる事があります。
RSTART = match関数で見つけた文字列の先頭位置
RLENGTH = match関数で見つけた文字列の長さ

o 文字列操作する為に使う値
FS = 分割する時の区切り文字。split関数で区切り文字の指定が無い時に、使われます。
FPAT = 分割する時の列取り出し規則。patsplit関数で区切り文字の指定が無い時に、使われます。(Gawk専用。バージョン4以降)
OFMT = printを使って数値1つだけを書き出す時の書式
CONVFMT = 数値を文字列に自動変換する時の書式
IGNORECASE = 文字列比較の時に、大文字小文字を区別させない(Gawk専用)


**** 関係する演算子
o 代入
=   = 代入

o 結合
(空白を入れて並べて書くと結合) = A B C と書くと、変数Aと変数Bと変数Cを文字列として結合

o 比較
==  = 等しい時に真。比較の時は、等号を2つ並べます。
!=  = 等しくない時に真
~  = 左辺の中に、右辺の正規表現に一致する部分がある時に真
!~  = 左辺の中に、右辺の正規表現に一致する部分が無い時に真
>   = 左辺よりも大きい時に真
>=  = 左辺よりも大きいか、等しい時に真
<   = 左辺よりも小さい時に真
<=  = 左辺よりも小さいか、等しい時に真

o 条件演算
?:  = A ? B : Cの形。条件Aによって、どちらか1つの値を取ります。


文字列操作機能サポート状況
名前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)
説明
調べる  
length○
(文字数)
○
(文字数)
○
(バイト数)
○
(バイト数)
○
(バイト数)
文字列や配列の長さを調べる
index○
(文字数)
○
(文字数)
○
(バイト数)
○
(全角不可)
○
(全角不可)
文字列の登場位置を調べる
match○
(文字数)
○
(文字数)
○
(バイト数)
○
(全角不可)
○
(全角不可)
正規表現の登場位置を調べる
取り出す  
substr○
(文字数)
○
(文字数)
○
(バイト数)
○
(バイト数)
○
(バイト数)
文字列の一部を取り出す
int○○○○○実数や文字列を整数化する
strtonum○○×××10進数、8進数、16進数の文字列を数値に変換する
split○○○△
(全角不可)
△
(全角不可)
文字列を分割する
sprintf○○○○△
(全角不可)
文字列を組み立てる
置き換える  
gsub○○○△
(全角不可)
△
(全角不可)
文字列を置き換える
sub○○○△
(全角不可)
△
(全角不可)
文字列を、最初の1つだけ置き換える
gensub○○×××n番目に見つかった文字列を置き換える
toupper○○△△
(全角不可)
△
(全角不可)
アルファベットを大文字にする
tolower○○△△△アルファベットを小文字にする
変数。更新する値  
$0○○○○○最後に入力したデータ、1行分。対象文字列の指定が無い時に、使われる事があります。
RSTART○○○
(バイト数)
○
(バイト数)
○
(バイト数)
match関数で見つけた文字列の先頭位置
RLENGTH○○○
(バイト数)
○
(バイト数)
○
(バイト数)
match関数で見つけた文字列の長さ
変数。文字列操作する為に使う値 
FS○○○○○分割する時の区切り文字。split関数で区切り文字の指定が無い時に、使われます。
OFMT○○○○○printを使って数値1つだけを書き出す時の書式
CONVFMT○○○○○数値を文字列に自動変換する時の書式
IGNORECASE○○×××文字列比較で大文字小文字を区別させない


==
関連ページ:
    ▼AWKの関数、変数、制御文(▼ABC順)
    ▼AWKプログラムを書く
    ▼AWK
    ▼制作メモ
    > ▼AWKの時刻取得関数と関連機能
    ▼AWKの入出力関数とコマンド実行機能
    ▼AWKのインターネット接続機能(Gawk専用)
    +
    ▼AWKの配列操作関数と関連機能
    ▼AWKの数値計算関数と関連機能
    ▼AWKのパターンと制御文