char から int へ
2009-12-28


C 言語を筆頭に char 型の文字の値を int 型の数値に変換するのに単純な代入演算子で出来る。しかし、awk にはその様な事は出来ず、またそのための関数も存在しない。

しかし、awk を使い初めて十年以上になるが、実際に必要になったのは初めてだった。無いと不便だが、必要になること自体が無かった。自身で書いても比較的簡単に出来る。


% cat upper2int.awk
function upper2int(ch)
{
    return index("ABCDEFGHIJKLMNOPQRSTUVWXYZ", ch) + 64
}
index 関数に差分を足す。今回は大文字のみが必要だったので、これで事が足りた。

先頭の文字のみを変換するテスト。


% cat test.awk
{ print upper2int(substr($0, 1, 1)) }
% nawk -f upper2int.awk -f test.awk
A
65
B
66
ABCD
65
abcd
64
^D
[awk]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット