2014-07-22 3 views

답변

2

Awk에는 배열이 없지만 매핑됩니다.

awk의 모든 변수와 마찬가지로이를 정의 할 필요가 없습니다. 처음 사용할 때 발생합니다.

a[key] = value 

이 요소를 사용하려면 :

print a[key] 

가 반복 :

이지도의 요소 할당하려면이 키와 같은 정수를 사용하는 경우

for (i in a) { 
    print i, a[i] 
} 

을,지도 배열과 동등합니다.

2

당신은 할 수 있습니다 : AWK에서

awk 'BEGIN {a[1]=50;a[2]=23;a[50]=432}' 
2

배열은 즉, 당신은 또한 값 인덱스 키로 문자열뿐 아니라 번호를 사용할 수있는 연관 유형입니다. i 키를 얻을 것이고 a가 언급 배열이고 배열

a[1] = "abc" ## Valid. 
a["x"] = "xyz" ## Also valid. 

액세스 i in a 요소로 이루어질 수있다. 예 :

#!/usr/bin/awk -f 
BEGIN { 
    a[1] = "abc" 
    a["x"] = "xyz" 
    for (i in a) { 
     print a[i] 
    } 
} 

awk -f script.awk 인쇄 것이라고는 :

xyz 
abc 

당신은 요소에 액세스 한 방법의 순서는 그들이 저장된 방법과 동일하지 않습니다 것을 알 수 있습니다. 이는 awk이 이와 관련하여 다양한 유형의 구현을 가질 수 있기 때문입니다. 당신이 요소를 위해 액세스 할 것이라는 점을 확신하려면

대신 숫자 키 또는 인덱스로 저장해야 할 것 : GNU의 AWK를 사용하는 경우

#!/usr/bin/awk -f 
BEGIN { 
    a[0] = "abc" 
    a[1] = "xyz" 
    for (i = 0; i in a; ++i) { 
     print a[i] 
    } 
} 

당신은 또한 동작을 구성 할 수 있습니다 :

PROCINFO [ "sorted_in"]

PROCINFO이 요소에 존재하는 경우는, 그 값이 배열 요소 (L)에 대해 이송되는 순서를 제어 죄송합니다. 지원 값은 "@ind_str_asc", "@ind_num_asc", "@val_type_asc", "@val_str_asc" "@val_num_asc", "@ind_str_desc", "@ind_num_desc", "@val_type_desc" "@val_str_desc"아르 , "@val_num_desc"및 "@unsorted"가 있습니다.다음 값은 는 정의 된 비교 함수의 이름 일 수

함수 cmp_func (I1, V1, I2를, V2)

I1과 I2는 인덱스 및 V1 및 V2가 대응되는 인

두 요소의 값이 비교됩니다. 배열 배열 순서에 따라 숫자 보다 작거나 같거나 0보다 큰 숫자를 반환해야합니다.

관련 문제