awk에서 배열 삭제 배열을 삭제하는 것과 같습니다. for (key

awk에서 루프로 배열을 지우면 빈 배열이됩니다. 이는 배열을 삭제하는 것과 같습니다.

for (key in array) delete array[key];

더 간단한 방법이 있습니까? 변수 이름을 스칼라에 재사용 할 수 있도록 배열을 완전히 삭제할 수 있습니까?



답변

문법

delete array

POSIX의 현재 버전은 아니지만 거의 모든 기존 구현 (원래 awk, GNU, mawk 및 BusyBox 포함)에서 지원됩니다. POSIX의 향후 버전에 추가 될 예정입니다 ( 결함 0000544 참조 ).

이식 가능하고 표준을 준수하며 명령문이 아닌 표현식 인 모든 배열 요소를 지우는 다른 방법은 split기존 요소를 모두 삭제하는 것입니다.

split("", array, ":")

를 포함하여 이러한 모든 delete array변수는 변수를 원래 awk, GNU awk 및 mawk (BusyBox awk가 아닌)의 배열 변수로 표시합니다. 내가 아는 한 변수가 배열로 사용되면 스칼라 변수로 사용할 방법이 없습니다.


답변