chef inspec output consists of error due to regex

357 Views Asked by At

When executing the below chef inspec command getting error.

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

Expected pattern matching is sql-20201212.log. pls check.

1

There are 1 best solutions below

0
On BEST ANSWER

This regex /^'sql-(\d)+.log'/ doesn't match this string sql-20201212.log. You can try it out on https://regexr.com/

There are a few problems with your regex:

  • ' is in your regex but not in your string
  • . matches any character expect line breaks, perhaps you want to match only a dot(?), if so, then you'd need to e.g. escape it \.
  • you probably don't need to have \d in a group (())

So, this regex ^sql-\d+\.log$ would match sql-20201212.log string. I also added $ to match the end of the string.