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関数で区切り文字の指定が無い時に、使われます。
OFMTprintを使って数値1つだけを書き出す時の書式
CONVFMT数値を文字列に自動変換する時の書式
IGNORECASE×××文字列比較で大文字小文字を区別させない


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