Dan Track wrote:
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.]*$/'
You joined the line at the start with the "$b" to the following line.
There should have been a newline (or a semicolon) there.
Paul.