Thursday, March 8, 2012

Create your handy commands in Linux

Creating commands in linux is as simple as having your meal when you are hungry.


Now let us consider an example.


I have screen scrapped a webpage for analyzing the results. It consists of much complex mix up of linux commands.


Website: http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html


I can run them as a single command by using the concept of piping, but for simplicity I split them as two commands. The result of first command will be stored in a temporary file, which will be given as input to second command.




curl http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html>/home/jophine/out


grep 'colspan="2">A\|colspan="2">I\|width="19\|width="25\|<td class="b' /home/jophine/out|sed 's/.*colspan=\"2\">\([AI].*\)<span.*/\1/g'|sed 's/.*width=\"19.*playerName\">\(.*\)<\/a>.*/\1/g'|sed 's/.*width=\"25.*battingDismissal\">\(.*\)<\/td>/\1/g'|sed 's/<td class=\"\(.*\)\">\(.*\)<\/td>/\1\t\2/g'|sed 's/battingRuns\">\([0-9]*\)<\/td>.*/battingRuns\t\t\1/'|sed 's/bowlingDetails\".*//'

Now I don't need the out(temporary file) anymore, so i'll remove it,

rm /home/jophine/out

(I am using full path because it is safe to create temporary file in your home directory)


Now, i'll club the three commands in a single file named cricinfo

But this is just a text file, to make it executable, 
in the first line give the compiler / interpreter path with which you use to execute your code. This is a shell script now so i'll provide the path as follows,
#!/bin/bash (shebang) for perl it may be #!/usr/bin/perl it all depends on the name of interpreter and path.
Now my file will looks like this:

#!/bin/bash

curl http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html>/home/jophine/out

grep 'colspan="2">A\|colspan="2">I\|width="19\|width="25\|<td class="b' /home/jophine/out|sed 's/.*colspan=\"2\">\([AI].*\)<span.*/\1/g'|sed 's/.*width=\"19.*playerName\">\(.*\)<\/a>.*/\1/g'|sed 's/.*width=\"25.*battingDismissal\">\(.*\)<\/td>/\1/g'|sed 's/<td class=\"\(.*\)\">\(.*\)<\/td>/\1\t\2/g'|sed 's/battingRuns\">\([0-9]*\)<\/td>.*/battingRuns\t\t\1/'|sed 's/bowlingDetails\".*//'

rm /home/jophine/out

Save the file and use the following command in terminal:
chmod u+x cricinfo

Now you can run the executable by typing ./cricinfo in the terminal.

But how to use it as a command...?

Very simple, run which ls command in terminal. This will produce a path probably "/bin/ls"
Now copy the file to the above path cp cricinfo /bin/cricinfo.

Bull shit!! (sorry) I need to be a root for that purpose, to become root, type sudo su - and give sudo password

Now do the copy cp cricinfo /bin/cricinfo
Navigate to /bin cd /bin then change the ownership of the file sudo chown jophine cricinfo
From the moment copy is successful you can use cricinfo as a command form any path.


This is just an example, you can automate any frequent tasks as an executable and use it as command as well.

Yes boss I got your mind voice...

Let me execute the command...

jophine@jophine-ThinkPad-R52:~$ cricinfo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  224k    0  224k    0     0  54289      0 --:--:--  0:00:04 --:--:-- 75089
Australia 1st innings   
EJM Cowan
c &dagger;Dhoni b Ashwin  
  battingRuns 68
  battingDetails 294
  battingDetails 177
  battingDetails 7
  battingDetails 0
  battingDetails 38.41
DA Warner
c &dagger;Dhoni b Yadav  
  battingRuns 37
  battingDetails 59
  battingDetails 49
  battingDetails 4
  battingDetails 1
  battingDetails 75.51
SE Marsh
c Kohli b Yadav  
  battingRuns 0
  battingDetails 11
  battingDetails 6
  battingDetails 0
  battingDetails 0
  battingDetails 0.00
RT Ponting
c Laxman b Yadav  
  battingRuns 62
  battingDetails 148
  battingDetails 94
  battingDetails 6
  battingDetails 0
  battingDetails 65.95
MJ Clarke
 b Khan  
  battingRuns 31
  battingDetails 57
  battingDetails 68
  battingDetails 5
  battingDetails 0
  battingDetails 45.58
MEK Hussey
c &dagger;Dhoni b Khan  
  battingRuns 0
  battingDetails 2
  battingDetails 1
  battingDetails 0
  battingDetails 0
  battingDetails 0.00
BJ Haddin
c Sehwag b Khan  
  battingRuns 27
  battingDetails 119
  battingDetails 70
  battingDetails 1
  battingDetails 0
  battingDetails 38.57
PM Siddle
c &dagger;Dhoni b Khan  
  battingRuns 41
  battingDetails 131
  battingDetails 99
  battingDetails 4
  battingDetails 0
  battingDetails 41.41
JL Pattinson
not out  
  battingRuns 18
  battingDetails 86
  battingDetails 54
  battingDetails 2
  battingDetails 0
  battingDetails 33.33
BW Hilfenhaus
c Kohli b Ashwin  
  battingRuns 19
  battingDetails 46
  battingDetails 32
  battingDetails 3
  battingDetails 0
  battingDetails 59.37
NM Lyon
 b Ashwin  
  battingRuns 6
  battingDetails 15
  battingDetails 11
  battingDetails 1
  battingDetails 0
  battingDetails 54.54
  battingDismissal (lb 21, w 2, nb 1)
  battingRuns 24
  battingDismissal (all out; 110 overs; 488 mins)
  battingRuns <b>333</b>
  battingRate" colspan="5 (3.02 runs per over)
  
  bowlingDetails 6
  bowlingDetails 77
  bowlingDetails 4
  bowlingDetails 2.48
  bowlingDetails (1nb, 1w)
  
  bowlingDetails 7
  bowlingDetails 48
  bowlingDetails 0
  bowlingDetails 2.00
  bowlingDetails
  
  bowlingDetails 5
  bowlingDetails 106
  bowlingDetails 3
  bowlingDetails 4.07
  bowlingDetails (1w)
  
  bowlingDetails 3
  bowlingDetails 81
  bowlingDetails 3
  bowlingDetails 2.79
  bowlingDetails
India 1st innings   
G Gambhir
c &dagger;Haddin b Hilfenhaus  
  battingRuns 3
  battingDetails 35
  battingDetails 23
  battingDetails 0
  battingDetails 0
  battingDetails 13.04
V Sehwag
 b Pattinson  
  battingRuns 67
  battingDetails 127
  battingDetails 83
  battingDetails 7
  battingDetails 0
  battingDetails 80.72
R Dravid
 b Hilfenhaus  
  battingRuns 68
  battingDetails 249
  battingDetails 187
  battingDetails 6
  battingDetails 0
  battingDetails 36.36
SR Tendulkar
 b Siddle  
  battingRuns 73
  battingDetails 151
  battingDetails 98
  battingDetails 8
  battingDetails 1
  battingDetails 74.48
I Sharma
c &dagger;Haddin b Hilfenhaus  
  battingRuns 11
  battingDetails 106
  battingDetails 69
  battingDetails 0
  battingDetails 0
  battingDetails 15.94
VVS Laxman
c &dagger;Haddin b Siddle  
  battingRuns 2
  battingDetails 30
  battingDetails 22
  battingDetails 0
  battingDetails 0
  battingDetails 9.09
V Kohli
c &dagger;Haddin b Hilfenhaus  
  battingRuns 11
  battingDetails 28
  battingDetails 21
  battingDetails 1
  battingDetails 0
  battingDetails 52.38
MS Dhoni
c Hussey b Hilfenhaus  
  battingRuns 6
  battingDetails 13
  battingDetails 8
  battingDetails 0
  battingDetails 0
  battingDetails 75.00
R Ashwin
c &dagger;Haddin b Siddle  
  battingRuns 31
  battingDetails 57
  battingDetails 35
  battingDetails 3
  battingDetails 1
  battingDetails 88.57
Z Khan
 b Pattinson  
  battingRuns 4
  battingDetails 7
  battingDetails 6
  battingDetails 1
  battingDetails 0
  battingDetails 66.66
UT Yadav
not out  
  battingRuns 2
  battingDetails 22
  battingDetails 16
  battingDetails 0
  battingDetails 0
  battingDetails 12.50
  battingDismissal (w 1, nb 3)
  battingRuns 4
  battingDismissal (all out; 94.1 overs; 417 mins)
  battingRuns <b>282</b>
  battingRate" colspan="5 (2.99 runs per over)
  
  bowlingDetails 6
  bowlingDetails 55
  bowlingDetails 2
  bowlingDetails 2.39
  bowlingDetails (1w)
  
  bowlingDetails 5
  bowlingDetails 75
  bowlingDetails 5
  bowlingDetails 2.88
  bowlingDetails (1nb)
  bowlingDetails 21.1
  bowlingDetails 2
  bowlingDetails 63
  bowlingDetails 3
  bowlingDetails 2.97
  bowlingDetails (2nb)
  
  bowlingDetails 2
  bowlingDetails 66
  bowlingDetails 0
  bowlingDetails 3.88
  bowlingDetails
  
  bowlingDetails 0
  bowlingDetails 15
  bowlingDetails 0
  bowlingDetails 3.00
  bowlingDetails
  
  bowlingDetails 0
  bowlingDetails 8
  bowlingDetails 0
  bowlingDetails 4.00
  bowlingDetails
Australia 2nd innings   
DA Warner
 b Yadav  
  battingRuns 5
  battingDetails 28
  battingDetails 27
  battingDetails 0
  battingDetails 0
  battingDetails 18.51
EJM Cowan
lbw b Yadav  
  battingRuns 8
  battingDetails 33
  battingDetails 17
  battingDetails 1
  battingDetails 0
  battingDetails 47.05
SE Marsh
 b Yadav  
  battingRuns 3
  battingDetails 25
  battingDetails 11
  battingDetails 0
  battingDetails 0
  battingDetails 27.27
RT Ponting
c Sehwag b Khan  
  battingRuns 60
  battingDetails 151
  battingDetails 97
  battingDetails 3
  battingDetails 0
  battingDetails 61.85
MJ Clarke
 b Sharma  
  battingRuns 1
  battingDetails 6
  battingDetails 4
  battingDetails 0
  battingDetails 0
  battingDetails 25.00
MEK Hussey
c &dagger;Dhoni b Khan  
  battingRuns 89
  battingDetails 227
  battingDetails 151
  battingDetails 9
  battingDetails 0
  battingDetails 58.94
BJ Haddin
c Laxman b Khan  
  battingRuns 6
  battingDetails 11
  battingDetails 14
  battingDetails 0
  battingDetails 0
  battingDetails 42.85
PM Siddle
c &dagger;Dhoni b Yadav  
  battingRuns 4
  battingDetails 29
  battingDetails 22
  battingDetails 0
  battingDetails 0
  battingDetails 18.18
NM Lyon
lbw b Ashwin  
  battingRuns 0
  battingDetails 9
  battingDetails 11
  battingDetails 0
  battingDetails 0
  battingDetails 0.00
JL Pattinson
not out  
  battingRuns 37
  battingDetails 97
  battingDetails 81
  battingDetails 4
  battingDetails 0
  battingDetails 45.67
BW Hilfenhaus
c Laxman b Sharma  
  battingRuns 14
  battingDetails 45
  battingDetails 29
  battingDetails 2
  battingDetails 0
  battingDetails 48.27
  battingDismissal (b 5, lb 2, w 1, nb 5)
  battingRuns 13
  battingDismissal (all out; 76.3 overs; 335 mins)
  battingRuns <b>240</b>
  battingRate" colspan="5 (3.13 runs per over)
  
  bowlingDetails 4
  bowlingDetails 53
  bowlingDetails 3
  bowlingDetails 2.65
  bowlingDetails (3nb, 1w)
  
  bowlingDetails 4
  bowlingDetails 70
  bowlingDetails 4
  bowlingDetails 3.50
  bowlingDetails
  bowlingDetails 12.3
  bowlingDetails 0
  bowlingDetails 43
  bowlingDetails 2
  bowlingDetails 3.44
  bowlingDetails (2nb)
  
  bowlingDetails 4
  bowlingDetails 60
  bowlingDetails 1
  bowlingDetails 2.72
  bowlingDetails
  
  bowlingDetails 0
  bowlingDetails 7
  bowlingDetails 0
  bowlingDetails 3.50
  bowlingDetails
India 2nd innings   
G Gambhir
c Ponting b Siddle  
  battingRuns 13
  battingDetails 52
  battingDetails 46
  battingDetails 1
  battingDetails 0
  battingDetails 28.26
V Sehwag
c Hussey b Hilfenhaus  
  battingRuns 7
  battingDetails 28
  battingDetails 12
  battingDetails 1
  battingDetails 0
  battingDetails 58.33
R Dravid
 b Pattinson  
  battingRuns 10
  battingDetails 59
  battingDetails 29
  battingDetails 1
  battingDetails 0
  battingDetails 34.48
SR Tendulkar
c Hussey b Siddle  
  battingRuns 32
  battingDetails 73
  battingDetails 46
  battingDetails 4
  battingDetails 0
  battingDetails 69.56
VVS Laxman
c Cowan b Pattinson  
  battingRuns 1
  battingDetails 22
  battingDetails 14
  battingDetails 0
  battingDetails 0
  battingDetails 7.14
V Kohli
lbw b Hilfenhaus  
  battingRuns 0
  battingDetails 3
  battingDetails 1
  battingDetails 0
  battingDetails 0
  battingDetails 0.00
MS Dhoni
 b Pattinson  
  battingRuns 23
  battingDetails 88
  battingDetails 44
  battingDetails 0
  battingDetails 1
  battingDetails 52.27
R Ashwin
c Cowan b Siddle  
  battingRuns 30
  battingDetails 38
  battingDetails 35
  battingDetails 5
  battingDetails 0
  battingDetails 85.71
Z Khan
c Cowan b Pattinson  
  battingRuns 13
  battingDetails 28
  battingDetails 22
  battingDetails 1
  battingDetails 1
  battingDetails 59.09
I Sharma
not out  
  battingRuns 6
  battingDetails 33
  battingDetails 14
  battingDetails 0
  battingDetails 0
  battingDetails 42.85
UT Yadav
c Warner b Lyon  
  battingRuns 21
  battingDetails 26
  battingDetails 25
  battingDetails 2
  battingDetails 1
  battingDetails 84.00
  battingDismissal (lb 10, w 2, nb 1)
  battingRuns 13
  battingDismissal (all out; 47.5 overs; 228 mins)
  battingRuns <b>169</b>
  battingRate" colspan="5 (3.53 runs per over)
  
  bowlingDetails 2
  bowlingDetails 53
  bowlingDetails 4
  bowlingDetails 3.53
  bowlingDetails (1nb, 1w)
  
  bowlingDetails 4
  bowlingDetails 39
  bowlingDetails 2
  bowlingDetails 2.16
  bowlingDetails (1w)
  
  bowlingDetails 1
  bowlingDetails 42
  bowlingDetails 3
  bowlingDetails 4.66
  bowlingDetails
  bowlingDetails 5.5
  bowlingDetails 0
  bowlingDetails 25
  bowlingDetails 1
  bowlingDetails 4.28
  bowlingDetails
jophine@jophine-ThinkPad-R52:~$




Hope you enjoyed...

Friday, January 13, 2012

POP protocol

Now we can see how to get your emails from gmail account to your terminal....

In terminal give the following command,

openssl s_client -connect pop.gmail.com:995

now you will get connection information, server certificate, SSL handshake information and some stuff..

here we use openssl command because gmail's POP(Post Office Protocol) is build on top of SSL(Secure Sockets Layer).

now type,

user <gmail username>

you will get an OK message prompting for password

pass <gmail password for the above mentioned account>

now again OK but with welcome

try the following commands now,

list                                          lists all the mail in the drop box(in POP we don't have the concept of
                                              folders so all the mails will be listed)
retr <msg no>                          this opens the message

top <msg no> <no of lines>      this list first line to the line number specified in the message
                                              corresponding to the message number specified

dele <msg no>                        deletes the message to corresponding to the message number
                                              specified

quit                                         you know what is the use of this.... bye....

Tuesday, January 10, 2012

Apache Session January 4th, 2012 noon 3.00 PM

Apache 2.0 (in Linux Ubuntu)


Note: commands are displayed yellow and outputs are displayed red...
   
     In apache pretty much everything is a module. Module is a collection of compiled code which can be loaded whenever necessary.

Install apache 2.0. To view the list of all running apache process use the following command:

     sudo netstat -pan| grep apache
    in netstat  -p  means program
                    -a  means all
                    -n  means show numeric address
You need to have sudo access to get the list of all process.


     tcp6       0      0 :::80                   :::*                    LISTEN      987/apache2

Now it is evident that apache listens on port 80


     whereis apache2

run the above command to get the location of apache...


apache2:   /usr/sbin/apache2   /etc/apache2 /usr/lib/apache2   /usr/include/apache2  /usr/share/apache2   /usr/share/man/man8/apache2.8.gz

apache is available in /usr/bin location. Now we have to find the apache2.conf file, for this give the following command...

/usr/sbin/apache2 -V

this will provide the version details as follows...

Server version: Apache/2.2.20 (Ubuntu)
Server built:   Nov  7 2011 22:49:55
Server's Module Magic Number: 20051115:28
Server loaded:  APR 1.4.5, APR-Util 1.3.12
Compiled using: APR 1.4.5, APR-Util 1.3.12
Architecture:   32-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/worker"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

now it is clear that the root directory is /etc/apache2/. You can open the apache2.conf by using vim editor.

Apache runs child modules when and where necessary to avoid overload.
Now let us see how to create our own module in apache.

Creating new module:
     To create a new apache module you should have developer kit. You can install it using
          sudo apt-get install apache2-prefork-dev

You can create a new module by giving,
     sudo apxs2 -g -n 'mymodule' 
     -g  is used to create a sub-directory
     -n  is used to explicitly set the module name for -g option
now a directory named 'mymodule' will be created and three files named:
  • Makefile
  • mod_mymodule.c
  • modules.mk
will be created within it.

Now open mod_mymodules.c file and edit the file as necessary. Here we edit the 
"The sample page from mod_mymodule.c" line as 
"my first module". Open the file as a sudo user:

     sudo vim mod_mymodule.c 

Compilation:

Now the next step is to compile the mod_mymodule.c file. The command for compilation is:

     sudo apxs2 -c -i mod_mymodule.c 
     -c  is used for compilation operation
     -i   is used for installation operation

Now if open mymodule directory, the following file would have been added to it:
  • mod_mymodule.la
  • mod_mymodule.lo
  • mod_mymodule.slo
leave it out. Now open mod_mymodule.c. In this file copy the code for apache2.conf file. It looks like this:
LoadModule mymodule_module modules/mod_mymodule.so
<Location /mymodule>
    SetHandler mymodule
</Location>
 Here we have to edit the first line because the location of .so file for the modules will be /usr/lib/apache2/modules, after editing the looks like this:
LoadModule mymodule_module /usr/lib/apache2/modules/mod_mymodule.so<Location /mymodule>    SetHandler mymodule</Location>
now paste this code at bottom of apache2.conf file which is located in /etc/apache2 directory.

Restart apache:


The final step is to restart the apache server using:

     sudo apachectl restart

Now open the web browser and type localhost/mymodule the browser will display the response from the server.



Hope You enjoyed it....

Documentation for apache can be found at the following sites:

http://httpd.apache.org/docs/2.0/
http://www.apachetutor.org/





Thursday, January 5, 2012

Screen Scrapping Using Linux Commands

     Screen Scrapping is a very funny exercise to practice. You can select any website and scrap it down to get the necessary or to be precise the information that you needed. During my practice I selected the following website:

http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html

     Initially we can use curl command to fetch the source code of a website.

curl 'http://www.espncricinfo.com/australia-v-india-2011/engine/match/518950.html'>cricinfo

In this example I am sending the output to cricinfo file.

Now in the bigger source code obtained we have to segregate the necessary information.


By analyzing the source code carefully, I finally came up with the following commands...

grep 'colspan="2">A\|colspan="2">I\|width="19\|width="25\|<td class="b' cricinfo     |     sed 's/.*colspan=\"2\">\([AI].*\)<span.*/\1/g'     |     sed 's/.*width=\"19.*playerName\">\(.*\)<\/a>.*/\1/g'     |     sed 's/.*width=\"25.*battingDismissal\">\(.*\)<\/td>/\1/g'     |     sed 's/<td class=\"\(.*\)\">\(.*\)<\/td>/\1\t\2/g'     |     sed 's/battingRuns\">\([0-9]*\)<\/td>.*/battingRuns\t\t\1/'     |     sed 's/bowlingDetails\".*//'>out

Finally the data will get stored in out file.






Output:



Australia 1st innings
EJM Cowan
c &dagger;Dhoni b Ashwin
  battingRuns   68
  battingDetails        294
  battingDetails        177
  battingDetails        7
  battingDetails        0
  battingDetails        38.41
DA Warner
c &dagger;Dhoni b Yadav
  battingRuns   37
  battingDetails        59
  battingDetails        49
  battingDetails        4
  battingDetails        1
  battingDetails        75.51
SE Marsh
c Kohli b Yadav
  battingRuns   0
  battingDetails        11
  battingDetails        6
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
RT Ponting
c Laxman b Yadav
  battingRuns   62
  battingDetails        148
  battingDetails        94
  battingDetails        6
  battingDetails        0
  battingDetails        65.95
MJ Clarke
 b Khan
  battingRuns   31
  battingDetails        57
  battingDetails        68
  battingDetails        5
  battingDetails        0
    battingDetails        45.58
MEK Hussey
c &dagger;Dhoni b Khan
  battingRuns   0
  battingDetails        2
  battingDetails        1
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
BJ Haddin
c Sehwag b Khan
  battingRuns   27
  battingDetails        119
  battingDetails        70
  battingDetails        1
  battingDetails        0
  battingDetails        38.57
PM Siddle
c &dagger;Dhoni b Khan
  battingRuns   41
  battingDetails        131
  battingDetails        99
  battingDetails        4
  battingDetails        0
  battingDetails        41.41
JL Pattinson
not out
  battingRuns   18
  battingDetails        86
  battingDetails        54
  battingDetails        2
  battingDetails        0
  battingDetails        33.33
BW Hilfenhaus
c Kohli b Ashwin
  battingRuns   19
  battingDetails        46
  battingDetails        32
  battingDetails        3
  battingDetails        0
  battingDetails        59.37
NM Lyon
 b Ashwin
  battingRuns   6
  battingDetails        15
  battingDetails        11
  battingDetails        1
  battingDetails        0
  battingDetails        54.54
  battingDismissal      (lb 21, w 2, nb 1)
  battingRuns           24
  battingDismissal      (all out; 110 overs; 488 mins)
  battingRuns   <b>333</b>
  battingRate" colspan="5       (3.02 runs per over)

  bowlingDetails        6
  bowlingDetails        77
  bowlingDetails        4
  bowlingDetails        2.48
  bowlingDetails        (1nb, 1w)

  bowlingDetails        7
  bowlingDetails        48
  bowlingDetails        0
  bowlingDetails        2.00
  bowlingDetails

  bowlingDetails        5
  bowlingDetails        106
  bowlingDetails        3
  bowlingDetails        4.07
  bowlingDetails        (1w)

  bowlingDetails        3
  bowlingDetails        81
  bowlingDetails        3
  bowlingDetails        2.79
  bowlingDetails
India 1st innings
G Gambhir
c &dagger;Haddin b Hilfenhaus
  battingRuns   3
  battingDetails        35
  battingDetails        23
  battingDetails        0
  battingDetails        0
  battingDetails        13.04
V Sehwag
 b Pattinson
  battingRuns   67
  battingDetails        127
  battingDetails        83
  battingDetails        7
  battingDetails        0
  battingDetails        80.72
R Dravid
 b Hilfenhaus
  battingRuns   68
  battingDetails        249
  battingDetails        187
  battingDetails        6
  battingDetails        0
  battingDetails        36.36
SR Tendulkar
 b Siddle
  battingRuns   73
  battingDetails        151
  battingDetails        98
  battingDetails        8
  battingDetails        1
  battingDetails        74.48
I Sharma
c &dagger;Haddin b Hilfenhaus
  battingRuns   11
  battingDetails        106
  battingDetails        69
  battingDetails        0
  battingDetails        0
  battingDetails        15.94
VVS Laxman
c &dagger;Haddin b Siddle
  battingRuns   2
  battingDetails        30
  battingDetails        22
  battingDetails        0
  battingDetails        0
  battingDetails        9.09
V Kohli
c &dagger;Haddin b Hilfenhaus
  battingRuns   11
  battingDetails        28
  battingDetails        21
  battingDetails        1
  battingDetails        0
  battingDetails        52.38
MS Dhoni
c Hussey b Hilfenhaus
  battingRuns   6
  battingDetails        13
  battingDetails        8
  battingDetails        0
  battingDetails        0
  battingDetails        75.00
R Ashwin
c &dagger;Haddin b Siddle
  battingRuns   31
  battingDetails        57
  battingDetails        35
  battingDetails        3
  battingDetails        1
  battingDetails        88.57
Z Khan
 b Pattinson
  battingRuns   4
  battingDetails        7
  battingDetails        6
  battingDetails        1
  battingDetails        0
  battingDetails        66.66
U Yadav
not out
  battingRuns   2
  battingDetails        22
  battingDetails        16
  battingDetails        0
  battingDetails        0
  battingDetails        12.50
  battingDismissal      (w 1, nb 3)
  battingRuns           4
  battingDismissal      (all out; 94.1 overs; 417 mins)
  battingRuns   <b>282</b>
  battingRate" colspan="5       (2.99 runs per over)

  bowlingDetails        6
  bowlingDetails        55
  bowlingDetails        2
  bowlingDetails        2.39
  bowlingDetails        (1w)

  bowlingDetails        5
  bowlingDetails        75
  bowlingDetails        5
  bowlingDetails        2.88
  bowlingDetails        (1nb)
  bowlingDetails        21.1
  bowlingDetails        2
  bowlingDetails        63
  bowlingDetails        3
  bowlingDetails        2.97
  bowlingDetails        (2nb)

  bowlingDetails        2
  bowlingDetails        66
  bowlingDetails        0
  bowlingDetails        3.88
  bowlingDetails

  bowlingDetails        0
  bowlingDetails        15
  bowlingDetails        0
  bowlingDetails        3.00
  bowlingDetails

  bowlingDetails        0
  bowlingDetails        8
  bowlingDetails        0
  bowlingDetails        4.00
  bowlingDetails
Australia 2nd innings
DA Warner
 b Yadav
  battingRuns   5
  battingDetails        28
  battingDetails        27
  battingDetails        0
  battingDetails        0
  battingDetails        18.51
EJM Cowan
lbw b Yadav
  battingRuns   8
  battingDetails        33
  battingDetails        17
  battingDetails        1
  battingDetails        0
  battingDetails        47.05
SE Marsh
 b Yadav
  battingRuns   3
  battingDetails        25
  battingDetails        11
  battingDetails        0
  battingDetails        0
  battingDetails        27.27
RT Ponting
c Sehwag b Khan
  battingRuns   60
  battingDetails        151
  battingDetails        97
  battingDetails        3
  battingDetails        0
  battingDetails        61.85
MJ Clarke
 b Sharma
  battingRuns   1
  battingDetails        6
  battingDetails        4
  battingDetails        0
  battingDetails        0
  battingDetails        25.00
MEK Hussey
c &dagger;Dhoni b Khan
  battingRuns   89
  battingDetails        227
  battingDetails        151
  battingDetails        9
  battingDetails        0
  battingDetails        58.94
BJ Haddin
c Laxman b Khan
  battingRuns   6
  battingDetails        11
  battingDetails        14
  battingDetails        0
  battingDetails        0
  battingDetails        42.85
PM Siddle
c &dagger;Dhoni b Yadav
  battingRuns   4
  battingDetails        29
  battingDetails        22
  battingDetails        0
  battingDetails        0
  battingDetails        18.18
NM Lyon
lbw b Ashwin
  battingRuns   0
  battingDetails        9
  battingDetails        11
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
JL Pattinson
not out
  battingRuns   37
  battingDetails        97
  battingDetails        81
  battingDetails        4
  battingDetails        0
  battingDetails        45.67
BW Hilfenhaus
c Laxman b Sharma
  battingRuns   14
  battingDetails        45
  battingDetails        29
  battingDetails        2
  battingDetails        0
  battingDetails        48.27
  battingDismissal      (b 5, lb 2, w 1, nb 5)
  battingRuns           13
  battingDismissal      (all out; 76.3 overs; 335 mins)
  battingRuns   <b>240</b>
  battingRate" colspan="5       (3.13 runs per over)

  bowlingDetails        4
  bowlingDetails        53
  bowlingDetails        3
  bowlingDetails        2.65
  bowlingDetails        (3nb, 1w)

  bowlingDetails        4
  bowlingDetails        70
  bowlingDetails        4
  bowlingDetails        3.50
  bowlingDetails
  bowlingDetails        12.3
  bowlingDetails        0
  bowlingDetails        43
  bowlingDetails        2
  bowlingDetails        3.44
  bowlingDetails        (2nb)
  bowlingDetails        4
  bowlingDetails        60
  bowlingDetails        1
  bowlingDetails        2.72
  bowlingDetails

  bowlingDetails        0
  bowlingDetails        7
  bowlingDetails        0
  bowlingDetails        3.50
  bowlingDetails
India 2nd innings
G Gambhir
c Ponting b Siddle
  battingRuns   13
  battingDetails        52
  battingDetails        46
  battingDetails        1
  battingDetails        0
  battingDetails        28.26
V Sehwag
c Hussey b Hilfenhaus
  battingRuns   7
  battingDetails        28
  battingDetails        12
  battingDetails        1
  battingDetails        0
  battingDetails        58.33
R Dravid
 b Pattinson
  battingRuns   10
  battingDetails        59
  battingDetails        29
  battingDetails        1
  battingDetails        0
  battingDetails        34.48
SR Tendulkar
c Hussey b Siddle
  battingRuns   32
  battingDetails        73
  battingDetails        46
  battingDetails        4
  battingDetails        0
  battingDetails        69.56
VVS Laxman
c Cowan b Pattinson
  battingRuns   1
  battingDetails        22
  battingDetails        14
  battingDetails        0
  battingDetails        0
  battingDetails        7.14
V Kohli
lbw b Hilfenhaus
  battingRuns   0
  battingDetails        3
  battingDetails        1
  battingDetails        0
  battingDetails        0
  battingDetails        0.00
MS Dhoni
 b Pattinson
  battingRuns   23
  battingDetails        88
  battingDetails        44
  battingDetails        0
  battingDetails        1
  battingDetails        52.27
R Ashwin
c Cowan b Siddle
  battingRuns   30
  battingDetails        38
  battingDetails        35
  battingDetails        5
  battingDetails        0
  battingDetails        85.71
Z Khan
c Cowan b Pattinson
  battingRuns   13
  battingDetails        28
  battingDetails        22
  battingDetails        1
  battingDetails        1
  battingDetails        59.09
I Sharma
not out
  battingRuns   6
  battingDetails        33
  battingDetails        14
  battingDetails        0
  battingDetails        0
  battingDetails        42.85
U Yadav
c Warner b Lyon
  battingRuns   21
  battingDetails        26
  battingDetails        25
  battingDetails        2
  battingDetails        1
  battingDetails        84.00
  battingDismissal      (lb 10, w 2, nb 1)
  battingRuns           13
  battingDismissal      (all out; 47.5 overs; 228 mins)
  battingRuns   <b>169</b>
  battingRate" colspan="5       (3.53 runs per over)

  bowlingDetails        2
  bowlingDetails        53
  bowlingDetails        4
  bowlingDetails        3.53
  bowlingDetails        (1nb, 1w)

  bowlingDetails        4
  bowlingDetails        39
  bowlingDetails        2
  bowlingDetails        2.16
  bowlingDetails        (1w)

  bowlingDetails        1
  bowlingDetails        42
  bowlingDetails        3
  bowlingDetails        4.66
  bowlingDetails
  bowlingDetails        5.5
  bowlingDetails        0
  bowlingDetails        25
  bowlingDetails        1
  bowlingDetails        4.28
  bowlingDetails