"경고: '[ob]' 형식의 범위는 로케일에 따라 다릅니다."는 gawk 4.1.0의 버그입니까?

"경고: '[ob]' 형식의 범위는 로케일에 따라 다릅니다."는 gawk 4.1.0의 버그입니까?

일부 코드를 작성하는 동안 4.1.0 의 옵션을 awk사용했습니다 . 놀랍게도 경고를 받았습니다--lintgawk

경고: '[ob]' 형식의 범위는 로케일에 따라 다릅니다.

하지만 내 코드는 foo-bar문자 클래스 외부에만 있습니다. 단순화된 예:

{ match($2, /^uid=([^,]+),dc=foo-bar$/, m) }

또한 gawk 4.2.1에서는 더 이상 이 경고를 출력하지 않는 것 같은데 이것이 버그입니까 gawk?

답변1

이것은 Gawk 4.1.0의 버그입니다. 그것은 출신이다a7c502a756732ec9a1773d6169376bb7b25f4308그리고에 의해 고정d52d17b46e53bb0d4a991cd32f859eb349d3b101. 버그는 4.1.0에서 처음 릴리스되었으며 수정 사항은 4.1.1에서 처음 릴리스되었습니다.

이는 Linter의 버그일 뿐이며 실제로 텍스트를 정규식과 일치시키는 데 사용되는 코드의 버그는 아닙니다.

이 버그로 인해 linter는 컬렉션에서 범위를 찾을 때 닫는 괄호를 계속 확인하므로 이를 발견하면 [set]more stuff with a-dash다음 위치에 도달하여 -경고를 표시합니다. 한 가지 해결 방법(이전 버전의 linter 전용 버그에 대한 해결 방법이 정말로 필요한 경우)은 대시 자체를 특정 범위에 두는 것입니다 /^uid=([^,]+),dc=foo[-]bar$/. 모든 경우에 작동하지 않을 수 있습니다.

관련 정보