수색…
배열 기본 사항
새로운 배열을 생성하는 것은 다소 혼란 스럽다. awk에 배열에 대한 실제 식별자가 없기 때문이다. 배열은 AWK 코드로 초기화 할 수 없습니다.
awk의 배열은 연관성이 있습니다. 즉, 문자열이나 숫자가 키가 될 수 있습니다. 즉, 배열은 키 - 값 쌍 사전, 맵 등과 비슷합니다. 또 다른 메모에서는 배열의 최대 크기가 없습니다.
변수 이름, 적절한 키를 가져 와서 변수에 할당하면 AWK에서 배열을 만드는 것이 정말 쉽습니다. 이것은 다음 코드가 실행될 때 myArray 라는 배열을 이미 만들었다는 것을 의미합니다.
BEGIN {
myArray["key"] = "value"
}
우리는 단지 배열을 처음부터 만들지 않을 것입니다. 다음과 같은 입력 스트림이 있다고 가정 해 보겠습니다.
A b c
D e f
G h i
그리고 다음 코드를 다음과 같이 실행합니다 :
{
myOtherArray[$1] = $2 "-" $3
}
# The array will look like this:
# myOtherArray["A"] = "b-c"
# myOtherArray["D"] = "e-f"
# myOtherArray["G"] = "h-i"
배열이 키 값 쌍으로 채워지면 키가있는 값만 검색 할 수 있습니다. 즉, myOtherArray 키 "A" 를 사용하면 "bc" 됩니다.
END {
print(myOtherArray["A"])
}
각 값을 얻기 위해 각 키를 반복 할 수도 있습니다. 배열의 각 키를 루핑하는 것은 간단한 일이지만 낙오자가 있습니다. 정렬되지 않습니다. 다음 루프는 for-each 루프와 비슷하며 키를 검색합니다.
END {
for (key in myOtherArray) {
print "myOtherArray[\"" key "\"] = " myOtherArray[key]
}
}
# Outputs (literal strings):
myOtherArray["A"] = "b-c"
myOtherArray["D"] = "e-f"
myOtherArray["G"] = "h-i"
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow