sorting help

Hi, Please i need help in writing an 'awk' script in sorting the following data;

traceroute6 to 2001:1ba0:2a0:5965:0:30:24:1 (2001:1ba0:2a0:5965:0:30:24:1) from 2001:418:1::62, 64 hops max, 16 byte packets
1 2001:418:1::4 0.342 ms
2 2001:418:1::1 0.630 ms
3 2001:504:16::1b1b 0.393 ms
4 2001:470:0:39::1 20.324 ms
5 2001:470:0:31::1 19.431 ms
6 2001:470:0:18d::2 27.455 ms
7 2001:470:0:10e::2 88.778 ms
8 2001:470:0:3e::2 162.857 ms
9 2001:7f8:4::7218:1 185.296 ms
10 2001:4de8:d1a1:1111:4::1 183.437 ms
11 2001:4de8:d1a1:1111:1f::2 183.409 ms
12 2001:4de8:d1a1:1111:11::2 190.747 ms
13 2001:1ba0:babe::1:2 188.239 ms
14 2001:1ba0:2a0:5965:0:30:24:1 188.244 ms
 
traceroute6 to 2001:8a8:21:5:216:3eff:fec1:423 (2001:8a8:21:5:216:3eff:fec1:423) from 2001:418:1::62, 64 hops max, 16 byte packets
1 2001:418:1::4 0.348 ms
2 2001:418:1::1 0.664 ms
3 2001:504:16::1b1b 0.352 ms
4 2001:470:0:39::1 26.260 ms
5 2001:470:0:31::1 19.394 ms
6 2001:470:0:18d::2 27.346 ms
7 2001:470:0:10e::2 90.690 ms
8 2001:470:0:3e::2 156.713 ms
9 2001:470:0:3f::2 164.429 ms
10 2001:470:0:47::2 171.232 ms
11 2001:7f8::9be8:0:1 177.971 ms
12 2a01:f8:1:2:1:1:5:2 178.022 ms
13 2a01:f8:2006:6::2 193.299 ms
14 2001:8a8:1:2::30 192.481 ms
15 2001:8a8:1:b::74 192.774 ms
16 2001:8a8:21:5:216:3eff:fec1:423 181.925 ms
 
traceroute6 to 2a00:ec8:401:1:a032::1 (2a00:ec8:401:1:a032::1) from 2001:418:1::62, 64 hops max, 16 byte packets
1 2001:418:1::4 0.479 ms
2 2001:418:0:5000::25 0.693 ms
3 2001:450:2008:100::d 0.619 ms
4 2001:450:2002:1ef::2 169.361 ms
5 2a00:ec8:401:211::1 169.716 ms
6 2a00:ec8:401:1:a032::1 170.081 ms

Its a traceroute results(its a long list in this format for about 7000 addresses) in which I need the IP address and destination address only in this format;

2001:1ba0:2a0:5965:0:30:24:1 destination is 2001:1ba0:2a0:5965:0:30:24:1
2001:8a8:21:5:216:3eff:fec1:423 destination is 2001:8a8:21:5:216:3eff:fec1:423 
2a00:ec8:401:1:a032::1 destination is 2a00:ec8:401:1:a032::1 

so basically is the IP address in first line and the IP address at the last line for each of the sections separated by space as above.

Thanks for your anticipated help.

Will you by this check if the traceroute completed? If this is the case, maybe it is more interessting to check for failed ones(?).

you can run this command and it will help you..

lets just say your file name is test.

cat test | grep "traceroute6 to " >> tmp_file 
for line in tmp_file
do
echo $line | awk '{print $3 "destination is " $3}' >> final_file
done

Assuming the logical records are separated by an empty lines (no spaces or other non-printable characters):

awk '{ 
  print $3, "destination is", $(NF - 2) 
  }' RS= infile
1 Like

Hi, Thanks for the urgent help, here is the result displayed when i ran the script;
"destination is"

and thats all i get....bear in mind that the file is not just the 3sections of traceroute displayed above, the section is about 7000.

Thanks

have you used the method that i suggested... above??

1 Like

thanks a lot radoulov, it worked perfectly