awk:split()関数、配列、カスタム関数


関係配列の下付き文字が存在するかどうかをテストします.forはテストで使用できません.if(「D」in num_grade)print「find ok」else print「error」注意:関係配列では、すべての下付き文字列とみなされます.数値または文字を使用できます.実数(data[1.23]=「3.21」)ではなく、下付き文字が数値であってもawkによって文字列に変換されます.
配列、関数split()1、split()は配列を作成し(下付きは1から)、構文:n=split(string,array,separator)注:nはsplitが返す分割されたデータ要素の個数(最後の要素array[n]にアクセス)である.separatorを指定しない場合はFSを使用します.separatorは正規表現であってもよい.split("a,b,c",array,",") split($1,array,"\t")
例:トラフィックを取得する場合、loが他のネットワークカードのように$2で受信トラフィックを取得できることを保証するには、以下の正則を使用する必要があります.
split(line,run,": +|:| +")
run[2]の値は5697です
[root@centos-6 nagios]# cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:    5697      79    0    0    0     0          0         0     5697      79    0    0    0     0       0          0

2、削除配列要素delete array[13]、多次元配列は同様にテスト下付き文法をサポートする:if((i,j)in array)注:iとjはデフォルトでSUBSEB値(0344)を使用して4、システム変数配列ARGVと他の配列を区別し、この配列の最初の配列要素の下に0、最後の配列はARGV-1と表記される.パラメータ個数変数はARGC ENVIRON値が現在の環境変数の値であり、以下変数名とする
補足1:カスタム関数
awkカスタム関数構文:
function name(parameter-list) {
statements
}
注意:
1、関数内部の変数がparameter-listのパラメータリストで指定されていない場合、デフォルトはグローバル変数である.
2、複数のパラメータをカンマで区切るように指定し、一般的に関数に渡されるパラメータと関数のローカル変数を複数のスペースで区切る.
function sort(ARRAY, NUM,  i, j, tmp) {
......
}
3、通常returnを使用して値を返します(注:配列の操作はreturn expressionの戻り値を必要としません.関数の配列に対する操作は関数の外部で表示されるためです.)