[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: How to search and replace



On 2/2/06, Paul Howarth <paul city-fan org> wrote:
> Dan Track wrote:
> > On 2/2/06, Paul Howarth <paul city-fan org> 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 10 11 8 10
> >>>Directory[description1]: server1
> >>>
> >>>Target[description2].1.3.4.6.4.9.:string 10 17 5 24
> >>>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 10 11 8 10 to become
> >>>Target[description1].1.3.4.6.5.3.:string server1 example com
> >>>
> >>>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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]