Почему переменная IGNORECASE awk не работает должным образом, если ее значение задано в параметре командной строки? - PullRequest
1 голос
/ 18 февраля 2020

Я понял, что awk -v IGNORECASE=0 игнорирует случай, когда он не должен.

ps -ef | awk -v IGNORECASE=0 '/INIT/'
root          1      0  0  2019 ?        00:03:07 /sbin/init
root      65327  25751  0 08:26 pts/0    00:00:00 awk -v IGNORECASE=0 /INIT/

, но awk 'BEGIN { IGNORECASE=0 }' не игнорирует случай, как ожидалось.

ps -ef | awk  'BEGIN { IGNORECASE=0 } /INIT/'
root      66290  25751  0 08:27 pts/0    00:00:00 awk BEGIN { IGNORECASE=0 } /INIT/

Почему ? Что мне не хватает? Это ошибка?

PD: GNU Awk 3.1.7

1 Ответ

3 голосов
/ 18 февраля 2020

Найдено в журнале изменений gawk:

2015-02-05 Эндрю Дж. Шорр

  • eval. c (set_IGNORECASE): если IGNORECASE имеет числовое значение c, попробуйте использовать его перед обработкой как строки. Это устраняет проблему, когда параметр -v IGNORECASE = 0 в командной строке не работал должным образом.

Ошибка подтверждена. Вы ничего не пропустили.

Надеюсь, вы сможете обновить его до последней версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...