I need to get a count of all the records that start with 4 and then print the value.
I have the below statement but it is missing something, can someone help me to fix this
awk 'BEGIN{~/^4/{C++}};END {print"<Total>"} {print"<Reg>"}{print "<value>"C"</value></Reg>"}' {print"</Total>"} temp > test.txt
RudiC
2
I'm afraid your sample code is entirely screwed up. Try (untested) (sample data would have been nice!):
awk '
/^4/ {C++}
{print "<Reg><value>" C "</value></Reg>"}
END {print "<Total>" C "</Total>"}
' temp
Aia
3
Other guesses:
awk 'BEGIN{ print "<Total>" }/^4/ {C++; print "<Reg><value>"C"</value></Reg>"}; END {print "</Total>"}' temp
Output
<Total>
<Reg><value>1</value></Reg>
<Reg><value>2</value></Reg>
<Reg><value>3</value></Reg>
<Reg><value>4</value></Reg>
<Reg><value>5</value></Reg>
</Total>
awk 'BEGIN{ print "<Total>" } /^4/{C++} END{ print " <Reg>\n <value>"C"</value>\n </Reg>\n</Total>"}' temp
Output:
<Total>
<Reg>
<value>5</value>
</Reg>
</Total>