It's not really feasible to use command line tools to parse irregular ouput.  Would be better to use python, etc..  

If you had complete regularity, e.g., you could use something as simple as:

awk '{print $2 " " $17}' INPUT


This misses the 'Hitem' lines from your example. 

This is an ugly hack, but it takes the 'Hitem' lines into account:

 sed 's/^.*Hitem:\([0-9]*\):0/\1/' INPUT | awk -F: '{print $1 " " $0}' | sed 's/\.add //' | sed 's/^\([0-9]* \).*Selected player: \([A-Za-z]* \).*$/\1 \2/' | egrep -v 'Selected none'


Which gave me:  

7971  Llubia 
43956  Staticbaby 
43956  Sunfire 
44077  Sunfire 
45932  Assasins 
45932  Assasins 
45932  Irmtarget 
45932  Irmtarget 
41600  Eifreen 
41600  Eifreen 
40516  Eifreen 
44661  Eifreen 
40518  Eifreen 
44005  Eifreen 
45867  Eifreen 
45316  Eifreen 


This fails on the additional info you've added, however, which is why I've added the comments/caveat about regularity here.

Parsing a Text to only see specific data
One of INSERT INTO script is written as following.

INSERT INTO tableName (Column1, Column2,....) VALUES (value1, Value2,...), (value1, Value2,...),....


Following is the error we are facing on parsing above insert statement


  Msg 10738, Level 15, State 1, Line 1007
  The number of row value expressions in the INSERT statement exceeds the maximum allowed number of 1000 row values.


My simple question is that, Can we change 1000 values limit ?
