0

私は次のようなことをしたい:

for (x in {a,b}) {
  ...
}

awkでこれを行う方法はありますか?

4

1 に答える 1

3

2つのオプション:

1)

for (x in a)
   u[x]

for (x in b)
   u[x]

for (x in u)
   print "Union Index:",x

2)

for (x in a)
   print "Union Index:",x

for (x in b)
   if (!(x in a))
      print "Union Index:",x

そして、何かが必要な場合は、forループで簡潔に使用できます。

$ cat tst.awk
function indices(a,b,u, x,c)
{
   for (x in a) {
      u[++c] = x
   }

   for (x in b) {
      if (!(x in a)) {
         u[++c] = x
      }
   }

   return c
}

BEGIN {
   a[3]="foo"
   a[9]=3

   b[5]=7
   b[15]=45

   for (i=1; i<=indices(a,b,u); i++) {
      print u[i]
   }
}
$ awk -f tst.awk
9
3
5
15
于 2012-10-17T20:38:38.543 に答える