答え1
GNUawk
マニュアル(第二。 3.5)は正規表現が\<
gawkに固有であることを文書化するので、他の実装では機能しないと予想されます。
~によるとman mawk
、特殊文字以外の文字の前にバックスラッシュを入れると、バックスラッシュが削除されます。したがって、 under はmawk
単に\<
山かっこ文字として解釈されます。
はい
さまざまな動作の例を提供するために正規表現を単純化しました。
$ echo -e " a\n ab.conf\n <ac.conf" | gawk '/\<(a|x)/ { print}'
a
ab.conf
<ac.conf
$ echo -e " a\n ab.conf\n <ac.conf" | mawk '/\<(a|x)/ { print}'
<ac.conf
繰り返しますが、これは単語の始まりとしてgawk
解釈されますが、単純に山括弧として解釈されます。\<
mawk
POSIXはこの問題について何を言いますか?
これGNUawk
マニュアル説明する:
POSIX awk は、前にリストされた文字の 1 つではなく、文字列定数の文字の前にバックスラッシュを置くと、何が起こるかを意図的に未定義のままにします。
つまり、この場合、異なるawk
通訳者が自由に決定を下すことができます。