U. Windl Asked: 2022-01-25 03:36:32 +0800 CST2022-01-25 03:36:32 +0800 CST 2022-01-25 03:36:32 +0800 CST “警告:'[ob]' 形式的范围取决于语言环境”是 gawk 4.1.0 中的错误吗? 772 在编写一些awk代码时,我使用的是4.1.0的--lint选项。gawk令我惊讶的是,我收到了警告 警告:“[ob]”形式的范围取决于语言环境 但我的代码只有foo-bar一个字符类的外部。简化示例: { match($2, /^uid=([^,]+),dc=foo-bar$/, m) } 另外我认为 gawk 4.2.1 不再输出该警告,所以它是一个错误gawk吗? awk locale 1 个回答 Voted Best Answer Gilles 'SO- stop being evil' 2022-01-25T06:04:43+08:002022-01-25T06:04:43+08:00 这是 Gawk 4.1.0 中的一个错误。它由 a7c502a756732ec9a1773d6169376bb7b25f4308 引入并由d52d17b46e53bb0d4a991cd32f859eb349d3b101修复。该错误在 4.1.0 中首次发布,该修复在 4.1.1 中首次发布。 这只是 linter 中的错误,而不是用于将文本与正则表达式实际匹配的代码中的错误。 该错误导致 linter 在查找集合中的范围时不断查看右括号,因此当它看到 时[set]more stuff with a-dash,它会到达下一个-并发出警告。一种解决方法(如果您确实需要针对旧版本中的仅 linter 错误的解决方法)是将破折号本身放在一个范围内:/^uid=([^,]+),dc=foo[-]bar$/在您的情况下。这可能不适用于所有极端情况。
这是 Gawk 4.1.0 中的一个错误。它由 a7c502a756732ec9a1773d6169376bb7b25f4308 引入并由d52d17b46e53bb0d4a991cd32f859eb349d3b101修复。该错误在 4.1.0 中首次发布,该修复在 4.1.1 中首次发布。
这只是 linter 中的错误,而不是用于将文本与正则表达式实际匹配的代码中的错误。
该错误导致 linter 在查找集合中的范围时不断查看右括号,因此当它看到 时
[set]more stuff with a-dash
,它会到达下一个-
并发出警告。一种解决方法(如果您确实需要针对旧版本中的仅 linter 错误的解决方法)是将破折号本身放在一个范围内:/^uid=([^,]+),dc=foo[-]bar$/
在您的情况下。这可能不适用于所有极端情况。