I have a file with a wide range of information and I want to extract some data from here. I only will post here the interesting part. I want to extract IQ and JQ values as well as the J_ij[meV] value which is two lines above. I read this question How to print 5 consecutive lines after a pattern in file using awk where a pattern is used to extract information bellow and I was thinking doing something similar. My initial idea was:
awk '/IQ =/ { print $6,$12 }  /IQ =/ {for(i=2; i<=2; i++){ getline; print $11 }}' input.text > output.txt
Loop appears not to working
IT   IQ   JT    JQ   N1 N2 N3    DRX    DRY    DRZ     DR         J_ij [mRy]     J_ij [meV]
 IT =  1 IQ =  **1**                     JT =  1 JQ =  **1**
->Q = ( -0.250,  0.722,  0.203)   ->Q = ( -0.250,  0.722,  0.203)
1    1    1    1    0  0  0   0.000  0.000  0.000   0.000      0.000000000     **0.000000000**
 IT =  1 IQ =  **1**                     JT =  6 JQ =  **6**
 ->Q = ( -0.250,  0.722,  0.203)   ->Q = (  0.000,  1.443,  0.609)
  1    1    6    6   -1  0 -1  -0.250 -0.144 -0.406   0.498      0.135692822     **1.846194885**
 IT =  1 IQ =  **1**                     JT =  8 JQ =  **8**
  ->Q = ( -0.250,  0.722,  0.203)   ->Q = (  0.000,  0.577,  0.609)
  1    1    8    8    0  0 -1   0.250 -0.144 -0.406   0.498      0.017676555     **0.240501782**
My expected output is:
IQ JQ J_ij [meV]
1 1 0.000000000
1 6 1.846194885
1 8 0.240501782
It comes from the bold words (** **), first line is only indicative.
 
    