変数の前に0があるawk forループ

変数の前に0があるawk forループ

インデックス変数の前にゼロがあるループを実行したいと思いますforawk

これではない印刷先頭にゼロの数字は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

おすすめ記事