awk의 nextfile이 POSIX에 지정되어 있습니까?

awk의 nextfile이 POSIX에 지정되어 있습니까?

GNU awk 매뉴얼nextfile내용은 다음과 같습니다.

노트:이것은 수년간 nextfile일반적인 확장이었습니다 . 2012년 9월 POSIX 표준에 통합되었습니다. 바라보다오스틴 그룹 웹사이트.

비슷하게,모의 매뉴얼설명하다:

Nextfile은 표준의 다음 개정판에서는 승인되었지만 아직 POSIX 표준(2012년 10월 기준)의 일부가 아닌 gawk 확장(BWK awk에서도 구현됨)입니다.

nextfile헷갈리는 점은 언급이 없다 .최신 POSIX 사양, 2018년부터.

Austin Group의 링크를 따라가면 이 문제가 2012년에 해결되었지만(최종 승인된 텍스트도 있음) 2020년에만 적용되었음을 알 수 있습니다(!).

전체적으로 이것은 nextfileawk의 기능이 POSIX에 의해 지정된다는 의미입니까? 아니면 향후 POSIX 버전에서만 적용됩니까?

(실용적인 목적을 위해 nextfile다음과 같이 할 수도 있습니다.BSDawk.)

다른 두 진술도 같은 상황에 있습니다 nextfile.fflush그리고delete( delete이미 지정되었지만 전체 배열을 삭제할 수 있도록 확장되었습니다.)

답변1

너는 보게 될 것이다오류 607아직 출시되지 않은 이슈 8을 타겟팅합니다(참조이슈 8 상표).

Issue 7은 2008년에 출시되었습니다. Issue 7의 최신 버전이 몇 가지 있으며 최신 버전은 2018이지만 이는 기술적인 정오표이며 새로운 기능을 제공하지 않습니다.

nextfile새로운 기능일 뿐만 아니라 awk '{nextfile = 1}'현재 POSIX 버전에서 변수 값을 각각 설정하고 검색하는 유효한 호출이므로 이전 버전과의 호환성도 손상시키므로 awk '{nextfile}'기술적인 정오표의 일부로 추가되지 않을 수 있습니다.awknextfile

TC에 추가할 수 있는(아마도 추가해야 하는) 것은 사람들에게 이것이 nextfile나중에 사용하기 위해 예약된 단어임을 알려주는 것입니다. 따라서 사람들은 스크립트에서처럼 변수나 함수 이름에 이 단어를 사용해서는 안 됩니다. awk '{nextfile = 1}'이는 완전히 표준이지만, 않습니다. 이는 많은 구현에서 작동하지 않습니다 awk(BTW에 국한되지 않음 nextfile).

awk다음 사이트에서 단일 UNIX 사양 2018년판 7호 일부의 HTML 버전을 볼 수 있습니다.https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/awk.html(해당 부분에 주의하세요 .2018edition) 그러나 Opengroup에서 게시하더라도 HTML 버전에는 표준 값이 없고 PDF에만 표준 값이 있다는 점에 유의하세요(액세스하려면 등록해야 함).

그들은의미는마찬가지로 과거에는 HTML로 변환할 때 일부 오류가 발생하여 일부가 손실되는 경우가 있었습니다(비록 일반적으로 발견되면 신속하게 수정되었지만). 의심스러울 때는 PDF를 확인하는 것이 가장 좋습니다.

답변2

POSIX 표준화는 두 가지 별개의 노력으로 볼 수 있습니다.

  • 인터페이스에 영향을 주지 않는 버그 수정은 소위 기술 정오표로 게시됩니다. 현재 Issue 7 표준은 기본적으로 2008년부터이고, 2018년 버전은 TC2입니다.

  • 인터페이스에 영향을 미치는 새로운 기능. 이를 위해서는 표준의 새로운 주요 버전이 필요합니다.

특정 이유로 인해 awk 문제가 표시되면 Issue 8현재 표준 버전 8을 마무리하는 작업 중이며 2021년에 준비될 예정입니다.

관련 정보