DevopsDevelop
DevopsDevelop

Reputation: 61

chef inspec output consists of error due to regex

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.

Upvotes: 0

Views: 381

Answers (1)

pavelsaman
pavelsaman

Reputation: 8352

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.

Upvotes: 1

Related Questions