Script help using "cut"

Giorgos Keramidas keramida at ceid.upatras.gr
Wed Aug 24 16:52:55 GMT 2005


On 2005-08-24 11:41, antenneX <antennex at swbell.net> wrote:
>Giorgos Keramidas <keramida at 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



More information about the freebsd-questions mailing list