Date: Wed, 24 Aug 2005 19:52:51 +0300 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: antenneX <antennex@swbell.net> Cc: freebsd-questions@freebsd.org Subject: Re: Script help using "cut" Message-ID: <20050824165251.GA855@orion.daedalusnetworks.priv> In-Reply-To: <000801c5a8ca$aca01680$0200000a@SAGEAME> References: <20050824130412.GB877@orion.daedalusnetworks.priv> <000801c5a8ca$aca01680$0200000a@SAGEAME>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2005-08-24 11:41, antenneX <antennex@swbell.net> wrote:
>Giorgos Keramidas <keramida@ceid.upatras.gr> wrote:
>> sed -e 's/)[[:space:]]*$//' -e 's/^.*@//'
>>
>> or you can use as complex regular expressions as necessary to cut
>> specific parts of the line:
>>
>> sed -e 's/^.*@\([^)]*\))[[:space:]]*$/\1/'
>
> In fact, my very next script line uses sed(1) to add the TAB and the
> RHS to the sendmail access file:
> sed 's/$/ REJECT/g' tmpfile >> /etc/mail/access
>
> I'll bet my line could be incorporated with yours.
Sure. It's probably also a good idea to use mv(1) with a temporary file
residing under /etc/mail too, to make sure the update to the access map
is as close to being an ``atomic operation'' as possible:
% accesstmp=`mktemp /etc/mail/access.tmp.XXXXXX`
% if [ -z "${accesstmp}" ]; then
% exit 1
% fi
%
% ( cat /etc/mail/access ;
% awk '{whatever else here}' tmpfile | \
% sed -e 's/^.*@\([^)]*\))[[:space:]]*$/\1 REJECT/' ) > "${accesstmp}"
% if [ $? -ne 0 ]; then
% exit 1
% fi
% mv "${accesstmp}" /etc/mail/access
% cd /etc/mail && make access.db
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050824165251.GA855>
