Shell script help

Paul Schmehl pauls at utdallas.edu
Sat Jul 30 19:35:58 GMT 2005


--On July 30, 2005 2:57:57 AM -0400 Parv <parv at pair.com> wrote:

> in message <E9E44D6085C02C80E233D138 at Paul-Schmehls-Computer.local>,
> wrote Paul Schmehl thusly...
>>
>> Running what I *thought* was the same sed command in the Makefile
>> of the port doesn't solve the problem of the formatting of the man
>> pages, but it doesn't generate any errors either:
>>
>> @${SED} -e '/man\.macros/r man.macros' -e '/man\.macros/d'
>> ${WRKSRC}/doc/${f} \
>>                > ${WRKDIR}/${f}
>>
>> Can someone explain what the sed command is doing?  The man page
>> isn't much help.
>
> In the 1st part, sed sends the output of file 'man.macros' to
> standard out if it exists (otherwise no worries) when sed sees the
> 'man\.macros' pattern.
>
> And the 2d part, just deletes that pattern.
>
> There in the sed(1) man page all is.  Or, line by line try this ...
>
>   rm -f q ; echo polka > p
>   { echo p  ; echo q; echo p; } | sed -e '/p/r p' -e '/p/d'
>   { echo p  ; echo q; echo p; } | sed -e '/p/r q' -e '/p/d'
>
Thanks!  That was the answer.  I had to fiddle with it for a while before I 
understood what it was doing, but it does exactly what I need it to do now.

Paul Schmehl (pauls at utdallas.edu)
Adjunct Information Security Officer
University of Texas at Dallas
AVIEN Founding Member
http://www.utdallas.edu/


More information about the freebsd-questions mailing list