Phil, That is impressively obfuscated. Jesse
-- Jesse Trucks, GCUX
jtru...@lopsa.org Director, LOPSA http://lopsa.org On Nov 30, 2009, at 11:16 PM, Phil Pennock wrote:
On 2009-11-30 at 21:20 -0500, Tom Limoncelli wrote:I have a file called rc-addition that contains: # BEGIN project a bunch of lines # END projectI want to append it to the end of /etc/rc.machine but if there is already a "# BEGIN project" / "# END project" it should replace that text, or deleteit and append the new text to the end. This sounds like a job of sed but my sed fu is weak.See, you're editing a file. I do wonder why people fixate on stream processing tools for editing a file, when there are command-lineinterfaces available to script file-editing. And no, {sed -i} is stillstream-orientated. The only trick parts are: (1) one line, so no here-script, so need portable echo with newline interpretation, so use printf (2) A marked line disappears once deleted, so to preserve line need to go back one, which would fail if "# BEGIN project" is on the firstline; thus we insert a dummy line at the start and delete it at theend. (3) For portability, putting a single-quote into the middle of a single-quoted string in shell requires using '"'"' -- using double-quotes means escaping the $ instead. Choose your poison.printf 'H\n1\ni\nX\n.\n$\nka\ng/^# BEGIN project$/-\\\nka\\\n+1,/^# END project/d\n'"'"'ar rc-addition\n1d\nw\nq\n' | ed -s /etc/ rc.machineOne line, 139 characters. 136 if you remove the H\n at the start, but diagnostics are good. All hail the one true Unix text-editor! Regards, -Phil _______________________________________________ Discuss mailing list Discuss@lopsa.org http://lopsa.org/cgi-bin/mailman/listinfo/discuss This list provided by the League of Professional System Administrators http://lopsa.org/
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Discuss mailing list Discuss@lopsa.org http://lopsa.org/cgi-bin/mailman/listinfo/discuss This list provided by the League of Professional System Administrators http://lopsa.org/