On 2/2/06, Paul Howarth <paul@xxxxxxxxxxxx> wrote: > Dan Track wrote: > > On 2/2/06, Paul Howarth <paul@xxxxxxxxxxxx> wrote: > > > >>Dan Track wrote: > >> > >>>Hi > >>> > >>>I thought I'd ask this here as you guys helped me setup mrtg :) > >>> > >>>I've got the following pattern in a text file in linux. > >>>Target[description1].1.3.4.6.5.3.:string@xxxxxxxxxx > >>>Directory[description1]: server1 > >>> > >>>Target[description2].1.3.4.6.4.9.:string@xxxxxxxxxx > >>>Directory[description2]: server2 > >>> > >>>What I would like to do is replace the ip of each with the following > >>>value of "Directory". So for example I would like > >>>Target[description1].1.3.4.6.5.3.:string@xxxxxxxxxx to become > >>>Target[description1].1.3.4.6.5.3.:string@xxxxxxxxxxxxxxxxxxx > >>> > >>>How can I accomplish this using either C,perl,sed or awk > >> > >>sed -e '$b > >> /^Target\[[^]]*\][.0-9]*:.*@[0-9.]*$/ { > >> $!N > >> s/^\(Target\[[^]]*\][.0-9]*:.*@\)[0-9.]*\nDirectory\[[^]]*\]: > >>\(.*\)$/\1\2.example.com/ > >> P;D > >> }' textfile > output > >> > > > > > > Thanks for the reply. When I run it I get the following error: > > The long line starting with "s/" and ending with "example.com/" is a > single long line; make sure your mail client didn't add a newline. > Ok I tried that, it seem to have fixed the "s" problem. But now I get the following: sed -e '$b /^Target\[[^]]*\][.0-9]*:.*@[0-9.]*$/ { $!N s/^\(Target\[[^]]*\][.0-9]*:.*@\)[0-9.]*\nDirectory\[[^]]*\]:\(.*\)$/\1\2.example.com/ P;D }' text_files/mrtg.cfg > text_files/mrtg.cfg.changed sed: can't find label for jump to `/^Target\[[^]]*\][.0-9]*:.*@[0-9.]*$/' Thanks Dan