in reply to Re: One liner: remove ssh keys with quotemeta
in thread One liner: remove ssh keys with quotemeta

exec { "/bin/sed -i -e '\\%${line}%d' '${file}'" : ... }

That would still suffer from the same problem as perl - the default shell. See Re^2: One liner: remove ssh keys with quotemeta.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^3: One liner: remove ssh keys with quotemeta
by jcb (Parson) on Nov 29, 2019 at 17:25 UTC

    While you are correct that the default shell can be a strange critter, the questioner's existing code assumes Bourne-like shell quoting rules, so I offered an example that follows suit.

    A better answer would probably be to write the update routines entirely in Ruby instead of calling out to other programs, but this is PerlMonks, not RubyMonks. :-)

      A better answer would probably be to write the update routines entirely in Ruby instead of calling out to other programs

      You are right. A simple read-modify-write shouldn't be that hard in Ruby, making it atomar atomic by writing to a new file followed by a rename shouldn't be hard, either.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)