gawk - parse space separated text file using awk -


can please me parsing using awk?
sorry don't have code input space separated text file ( file has few more fields in item lines)

category fruits   item id  8837878 item id  8837879 item id  8837880 item id  8837881 item id  8837882 item id  8837883 item id  8837884 item id  8837885 item id  8837886 item id  8837887 item id  8837888 item id  8837889   category veg  item id  8837890 item id  8837891 item id  8837892 item id  8837893 item id  8837894 item id  8837895 item id  8837896 item id  8837897 

required tab separated output file

fruits item id  8837878 fruits item id  8837879 fruits item id  8837880 fruits item id  8837881 fruits item id  8837882 fruits item id  8837883 fruits item id  8837884 fruits item id  8837885 fruits item id  8837886 fruits item id  8837887 fruits item id  8837888 fruits item id  8837889 veg item id  8837890 veg item id  8837891 veg item id  8837892 ..... 

one way awk:

$ awk '/^category/{c=$3}/^item/{print c,$0}' file fruits item id  8837878 fruits item id  8837879 fruits item id  8837880 fruits item id  8837881 fruits item id  8837882 fruits item id  8837883 fruits item id  8837884 fruits item id  8837885 fruits item id  8837886 fruits item id  8837887 fruits item id  8837888 fruits item id  8837889 veg item id  8837890 veg item id  8837891 veg item id  8837892 veg item id  8837893 veg item id  8837894 veg item id  8837895 veg item id  8837896 veg item id  8837897 

to format output how need can use printf:

$ awk '/^category/{c=$3}/^item/{printf "%s %s %s %d\n",c,$1,$2,$3}' file 

so tab separated output maybe mean:

$ awk '/^category/{c=$3}/^item/{printf "%s %s %s\t%d\n",c,$1,$2,$3}' file 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -