Skip site navigation (1)Skip section navigation (2)
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>