Что-то как-то непонятно. Есть простенькая программка на awk:{
m[1]=$1;
m[2]=$2;
}
END { for ( i in m ) print m[i] }Если на вход дать, например, пару цифр на выходе получим ту же пару.
Пытаюсь сделать все то же самое, но с двумерным массивом:{
m[1,1]=$1;
m[2,1]=$2;
}
END { for ( (i,j) in m ) print m[i,j] }лепит ошибку:
awk: syntax error at source line 5
context is
END { for ( (i,j) in m >>> ) <<<
awk: illegal statement at source line 5
>Что-то как-то непонятно.
>лепит ошибку:
>awk:man gawk
man awkв районе "arrays"...
Так понятнее, _кто_ "лепит" ошибку?
>man gawk
>в районе "arrays"...
>Так понятнее, _кто_ "лепит" ошибку?Упс. Сам такой, прошу прощения.
Многомерных-то массивов нет, но конструкция "(i,j) in arr" есть... Но судя по контексту ман-а и тому, что так не работате -- она реализована только для if(), но не для for(), грубо выражаясь.
Вот так работает:
#!/usr/bin/gawk -f
BEGIN {
SUBSEP=","
m[1,1]=111;
m[2,1]=222;for ( s in m ) print i" "m[s];
for ( s in m ) {
match(s, /(.+),(.+)/, ar);
i=ar[1]; j=ar[2]
print i" "j" "m[i,j];
}
}
кончаем извращатся и переходим на перл!