답변1
GNU awk
매뉴얼(두번째. 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는 이 문제에 대해 뭐라고 말합니까?
이것GNU awk
매뉴얼설명하다:
POSIX awk는 이전에 나열된 문자 중 하나가 아닌 문자열 상수의 문자 앞에 백슬래시를 넣으면 어떤 일이 발생하는지 의도적으로 정의되지 않은 상태로 둡니다.
즉, 이 경우에는 서로 다른 awk
통역사가 자유롭게 결정을 내릴 수 있습니다.