厨师检查输出包含由于正则表达式引起的错误

chef inspec output consists of error due to regex

执行以下 chef inspec 命令时出现错误。

describe command ("cat sql.conf | grep 'log_filename'") do
  its('stdout') {should match (/^'sql-(\d)+.log'/)}
end

预期的模式匹配是 sql-20201212.log。请检查。

此正则表达式 /^'sql-(\d)+.log'/ 与此字符串 sql-20201212.log 不匹配。您可以在 https://regexr.com/

上试用

您的正则表达式存在一些问题:

  • ' 在您的正则表达式中但不在您的字符串中
  • . 匹配除换行符以外的任何字符,也许您只想匹配一个点(?),如果是这样,那么您需要例如逃脱它 \.
  • 你可能不需要 \d 在一个组中 (())

因此,此正则表达式 ^sql-\d+\.log$ 将匹配 sql-20201212.log 字符串。我还添加了 $ 以匹配字符串的结尾。