kaggr
配列を作成し、値をknam
sumに保存する次のawkコードがありますknum
。ループは最初から始めるのではなく、1
最初から始めなければならないという印象を受けましたが、うまくいくようです0
。for ( i=1; i<n; i+=2 )
awk配列はindexで始まる必要があるので、0
indexから始めるときはすべて大丈夫ですか1
?
awk 'BEGIN { kl=0
"tput sgr0" |& getline rst
ks = "Wht 15 Grn 34 Blu 39 Ylw 11 Red 196 Amb 214"
n = split(ks, kaggr)
for ( i=1; i<n; i+=2 ) {
knam = kaggr[i] ":"
knum = kaggr[i+1]
}
}
答え1
split()
inを使用して文字列を分割すると、awk
最初からインデックス付きの配列が得られます1
。
~からBSDシステムに関する文書:
split(s, a, fs)
文字列をs
配列要素a[1]
、、a[2]
...、a[n]
およびreturnに分割しますn
。
したがって、ペアで配列要素にアクセスするには、手順2でfrom toを繰り返し、1
各反復で要素の合計にアクセスする必要があります。n - 1
i
i+1
n = split(string, a)
for (i = 1; i <= n - 1; i += 2) {
# use a[i] and a[i+1]
}
はっきりi <= n - 1
と等しいので、i < n
ループは正確です。