Explanation of "sed" in a shell command -


i used following command extract first "result" multiple files , write them in file.

for file in *.xml; cat $file | grep result | sed -n 2p | sed s:"<result>":"": | sed s:"</result>":"": >> tmp.txt; done 

i looking @ after 2 years , can't remember how picked number in first "result"(0.018300606384717713) 2 of them (the second 1 -0.083118623723832552 )from files like:

<?xml version="1.0" encoding="utf-8"?> <fit_results>   <input_file>/users/hunululu/desktop/current/m203/ratios/tmp.xml</input_file>   <time>fri oct 17 17:45:51 2014</time>   <fit_converged>true</fit_converged>   <iterations>3</iterations>   <dof>1</dof>   <chi_sqr_per_dof>0.088802954844880599</chi_sqr_per_dof>   <q>0.76570450204332174</q>   <parameter_values>     <parameter>       <name>a</name>       <result>0.018300606384717713</result>       <error>0.0090474462765945517</error>     </parameter>     <parameter>       <name>b</name>       <result>-0.083118623723832552</result>       <error>0.045747262135131625</error>     </parameter>   </parameter_values> </fit_results> 

can please me understand how picks first 1 instead of second result? thanks.

the key here 2p. p stands printing current pattern space. if prepend number i, means print i'th line in pattern space.

in case, pattern space after grep is:

<fit_results>       <result>0.018300606384717713</result>       <result>-0.083118623723832552</result> </fit_results> 

hence, 2p picks second line in this, , hence first result.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -