in reply to insert line of text above a line

perl -pi.bak -e" /\(baz-\d+\)/ and print 'bar=2'.$/" file

Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
If I understand your problem, I can solve it! Of course, the same can be said for you.

Replies are listed 'Best First'.
Re: Re: insert line of text above a line
by graff (Chancellor) on Sep 26, 2003 at 03:14 UTC
    Okay -- but one needs to be careful about those quotes on the command line. In bash (or any bourne-like shell, whether on *nix or wintel), having the double-quotes on the outside (around the script) means that strings in the script that begin with "$" could be interpolated by the shell as environment variables (which might yield empty strings).

    The problem doesn't apply in this particular case, because shell variable names have to start with an alphanumeric ("$1" etc are shell variables); as a general rule, bourne-shell users habituate toward single quotes around perl one-liners on the command line. (I suppose with "command.com", the behavior may be different.) (update: for those, like Browser UK, who didn't know, "command.com" is the DOS/Windows executable that is the standard DOS command-line interface)

      What's command.com?


      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller
      If I understand your problem, I can solve it! Of course, the same can be said for you.