web-dev-qa-db-ja.com

awkの次のファイルはPOSIXで指定されていますか?

GNU awkマニュアルnextfile 読み取り:

注:長年にわたり、nextfileは一般的な拡張子でした。 2012年9月、POSIX標準への組み込みが承認されました。 Austin GroupのWebサイト を参照してください。

同様に、 mawkマニュアル は次のように述べています。

Nextfileはgawk拡張(BWK awkでも実装されています)であり、POSIX標準(2012年10月現在)にはまだ含まれていませんが、標準の次の改訂版では受け入れられています。

私を混乱させるのは、2018年から 最新のPOSIX仕様nextfileの言及がないことです。

オースティングループへのリンクをたどると、問題は2012年に(最終的に承認されたテキストも含めて)解決されましたが、2020年にのみ適用されました(!)。

全体として、それはnextfileがPOSIXによって指定されたawkの機能であることを意味しますか?それとも、将来のPOSIXバージョンでのみそうなりますか?

(実際には、nextfileBSD awk にあります。)

さらに2つのステートメントがnextfileと同じ状況にあります: fflush および deletedeleteはすでに指定されていますが、配列全体を削除できるように拡張されます)。

10
Quasímodo

バグ607 がまだリリースされていない第8号を対象としていることがわかります(issue8を参照してください)タグ)。

第7号は2008年にリリースされました。最新版の第7号には2018年の最新版がいくつかありますが、これらは技術的な正誤表であり、新機能はありません。

nextfileは新機能であるだけでなく、awk '{nextfile = 1}'awk '{nextfile}'が有効なawk呼び出しであるので、下位互換性がなくなり、現在のPOSIXバージョンでは、それぞれnextfile変数なので、技術修正の一部として追加できない可能性があります。

TCに追加できる(そしておそらく持つべき)ものは、nextfileは将来の使用のために予約されているWordであることを人々に伝えることです。そのため、このスクリプトを変数や関数名で使用しないでください。 awk '{nextfile = 1}'は完全に標準ですが、多くのawk実装では機能しません(nextfile btwに限定されません)。

https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/awkで、Single UNIX SpecificationのIssue 7の2018年版のawk部分のHTMLレンディションを確認できます。 .html.2018editionの部分に注意してください)、ただし、Opengroupによって公開されている場合でも、HTMLバージョンには標準の値がなく、PDF (それにアクセスするには、それらに登録する必要があります)。

それらは同等であるmeantですが、過去にHTMLへの変換にいくつかのバグがあり、セクションが欠落していました(ただし、発見されたらすぐに修正されるのが一般的です)。

12

POSIXの標準化は、2つの異なる取り組みと見なすことができます。

  • インターフェースに影響を及ぼさないバグ修正。これは、いわゆる技術的修正としてリリースされています。現在の第7号標準は基本的に2008年のもので、2018年のリリースはTC2です。

  • インターフェイスに影響を与える新機能。これには、標準の新しいメジャーバージョンが必要です。

名前付きの理由でIssue 8とマークされている場合、awkの問題が発生しています。現在、2021年に準備ができると予想される第8号の標準の完成に取り組んでいます。

8
schily