Stupid sed question

Alan H. Mintz alan at mq.com
Sat Oct 27 08:29:44 AEST 1990


(Hmmm. Hard to tell if this is the right group nowadays :)

I'm trying to write a script to edit the /etc/ttytype file under XENIX. The
idea is to search the file for the line for a given port and alter the
terminal type associated with it. The ttytype file consists of lines
like:

wy60ak	ttya1
svt1210	ttya2
ansi	ttya3

The separator between the fields is a tab character (\011, 0x09). So,

*********************
:
# Edit script

tty='ttya1'
ttytype='vt100n'

line=`fgrep $tty /etc/ttytype`
cat /etc/ttytype | sed "s/$line/$ttytype	$tty/" >tempfile
#		This is a tab -----------^^^^^^

if [ $? -eq 0 ]
then
 mv tempfile /etc/ttytype
fi
***********************

This works great, if the file does not contain another terminal that starts
with ttya1 (like ttya10):

ansi	ttya1
ansi	ttya10

In this case, sed barfs with "command" garbled. What am I missing here ? I 
understand that the problem has to do with sed matching more than one line,
but why doesn't it just (incorrectly) screw up both lines ?
-- 
< Alan H. Mintz             | Voice +1 714 980 1034       >
< Micro-Quick Systems, Inc. | FAX   +1 714 944 3995       >
< 10384 Hillside Road       | uucp:     ...!uunet!mq!alan >
< Alta Loma, CA  91701 USA  | Internet: alan at MQ.COM       >



More information about the Comp.unix.shell mailing list