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
Post a Comment