In the last episode (Feb 06), Adam Vande More said:
> Dan Nelson wrote:
> > In the last episode (Feb 06), Adam Vande More said:
> >   
> >> I want to insert a new line of text at a certain position in certain
> >> files recursively under a directory.  More specifically, I want text
> >> like this:
> >>
> >> include('/usr/home/www/imp-sites/default_inventory.php');
> >>
> >> to be put into file X at line 37 where file X appears in ./subdir1, 
> >> .subdir2 etc. There are many subdirs or I'd just do it by hand.
> >>
> >> I've done stuff like this before with the rpl script and it works well
> >> as long as there aren't any special characters in the strings.  So I
> >> assumed I finally hit the point where I'm forced to learn something
> >> like sed or awk and tried some examples with sed but I can't figure out
> >> what I'm doing wrong.
> >>
> >> I get results like this:
> >>
> >> sed '5i\test' test.txt
> >> sed: 1: "5i\test": extra characters after \ at the end of i command
> >
> > You want:
> >
> > sed -e '5i\
> > test' test.txt
> >
> > i.e. a linebreak after the backslash.
>
> I had actually tried that too:
> 
>  > sed -e '5i\
> ? test' text.txt
> sed: 1: "5i
> test
> ": command i expects \ followed by text

I don't see a backslash in the error message, which means something ate it. 
Are you running this command from something other than the commandline or a
plain sh script?  If you're calling this from another scripting language
(via system() or popen() or something similar), you probably have to double
the backslash so whatever's parsing it out passes one through to sed.

-- 
        Dan Nelson
        dnel...@allantgroup.com
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to