0
My xml file looks like this:
<price = "2.22"><instock = "1">
I need to have it like that:
<price = "2.22">
<instock = "1">
After each ">" character I need to put a newline character with awk or sed. How can i accomplish that? thank you
0
My xml file looks like this:
<price = "2.22"><instock = "1">
I need to have it like that:
<price = "2.22">
<instock = "1">
After each ">" character I need to put a newline character with awk or sed. How can i accomplish that? thank you
2
As KeithB said, there are potential problems that can arise from using a crude approach. However, this crude approach is a tiny bit more selective so that chances it will fail are reduced by about 0.00001% which may be enough.
sed 's|><|>\n<|g' inputfile
If there may be whitespace between the angle brackets, then this may be better:
sed 's|>[[:space:]]*<|>\n<|g' inputfile
which will eliminate that whitespace.
1
If you want to do this right, you need something more powerful than awk. One of the problems is awk won't handle >
inside strings or comments. You might be better off with perl or python. If this is just to make a file easier to look at visually, it might be fine.
A quick and dirty awk script is
awk '{for(i=1; i<= NF-1; i++) printf "%s>\n",$i}' FS='>'
This treats >
as the separator between fields, and prints out each on its own line. Its pretty crude, but might be a starting place.
I'm not sure
<price = "2.22">
is valid XML. – user1686 – 2010-09-20T17:19:33.230