Looking to repair "Unrecognised escape sequence" if possible

256 views
Skip to first unread message

Dan White

unread,
Nov 12, 2013, 3:35:51 PM11/12/13
to Puppet Users Mailing List
The recent traffic about "puppet master --compile ..." got me tinkering with it.

I found a lot of old syntax in my templates, so I added "@" in front of all the current scope variables.
That got rid of all the grumbles but one:

  Warning: Unrecognised escape sequence '\1'
  Warning: Unrecognised escape sequence '\2'


from one of my manifests/init.pp files.

The offending code can be found here:

https://github.com/mcgonagle/puppet_nist/blob/master/nist/modules/umask/manifests/init.pp

...at the end of the file,

    define umask-replace($file) {
        exec {
            "umask_replace_${file}":
                command => "/bin/sed -i -r 's/(umask)([ \t]*)[0-9]{3}/\1\2077/gi' $file",
                onlyif  => "/usr/bin/test `/bin/egrep -i '(umask|UMASK)[[:space:]]*[0-9]{3}' $file | /bin/egrep -v -i '(umask|UMASK)[[:space:]]*077' | /bin/wc -l` -ne 0";
        }
    }

Specifically, the "command" line

Besides the fact that Unrecognized is misspelled (I copied/pasted out of the command output),
can anyone suggest a fix to remove the warnings ?

“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”
Bill Waterson (Calvin & Hobbes)

Josh Cooper

unread,
Nov 13, 2013, 12:16:54 AM11/13/13
to puppet...@googlegroups.com
On Tue, Nov 12, 2013 at 12:35 PM, Dan White <yg...@comcast.net> wrote:
The recent traffic about "puppet master --compile ..." got me tinkering with it.

I found a lot of old syntax in my templates, so I added "@" in front of all the current scope variables.
That got rid of all the grumbles but one:

  Warning: Unrecognised escape sequence '\1'
  Warning: Unrecognised escape sequence '\2'


from one of my manifests/init.pp files.

The offending code can be found here:

https://github.com/mcgonagle/puppet_nist/blob/master/nist/modules/umask/manifests/init.pp

...at the end of the file,

    define umask-replace($file) {
        exec {
            "umask_replace_${file}":
                command => "/bin/sed -i -r 's/(umask)([ \t]*)[0-9]{3}/\1\2077/gi' $file",
                onlyif  => "/usr/bin/test `/bin/egrep -i '(umask|UMASK)[[:space:]]*[0-9]{3}' $file | /bin/egrep -v -i '(umask|UMASK)[[:space:]]*077' | /bin/wc -l` -ne 0";
        }
    }

Specifically, the "command" line

Since you're in a double quoted string, I assume the \1 and \2 backreferences need to be escaped:

  "/bin/sed -i -r 's/(umask)([ \t]*)[0-9]{3}/\\1\\2077/gi' $file",

Josh

--
Josh Cooper
Developer, Puppet Labs

Dan White

unread,
Nov 13, 2013, 9:28:12 AM11/13/13
to puppet...@googlegroups.com
That works.  Many thanks.


“Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.”
Bill Waterson (Calvin & Hobbes)


From: "Josh Cooper" <jo...@puppetlabs.com>
To: puppet...@googlegroups.com
Sent: Wednesday, November 13, 2013 12:16:54 AM
Subject: Re: [Puppet Users] Looking to repair "Unrecognised escape sequence" if possible
--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CA%2Bu97ukxB7axgr4qEDj9o41qfFW34ovgyGjfK8tKXw2XecX20w%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages