インデックス変数の前にゼロがあるループを実行したいと思いますfor
。awk
これではない印刷先頭にゼロの数字はprintf
ステートメントで簡単に処理できます。与えられた数字(前に0が付いている)が配列のインデックスとして使用されていることを確認するために使用されます。
だから私が本当に欲しいものは繰り返すことです。ひもawk
「01」から「14」(またはその他)の値です。
それは次のとおりです。
myarray["01"]
myarray["02"]
myarray["04"]
myarray["05"]
# ... etc, up to "12"
for (i = 01; i <= 12; i++) {
if (! (i in myarray)) {
print i " is missing from myarray"
}
}
「03 myarrayから欠落している」を報告する必要があります。しかしそれは真実ではない。
どうすればいいですか?
答え1
ただ使用してくださいsprintf
:
BEGIN {
myarray["01"]
myarray["02"]
myarray["04"]
myarray["05"]
# ... etc, up to "12"
for (i = 1; i <= 12; i++) {
k = sprintf("%02d", i)
if (! (k in myarray)) {
print k " is missing from myarray"
}
}
}
あなたのため:
03 is missing from myarray
06 is missing from myarray
07 is missing from myarray
08 is missing from myarray
09 is missing from myarray
10 is missing from myarray
11 is missing from myarray
12 is missing from myarray