Convert rows to columns

I am looking to print the data in columns and after every 3 words it should be a new row.

 
cat example.out |  awk 'END { for (i = 0; ++i < m;) print _;print _[0] }{ _[NR % m] = _[NR % m] x ? _[NR % m] OFS $1 : $1}' m=1| grep -i INNER

I am looking to print in a new line after every 3 words.

How can i change the above code to my requirement

Thank You
Lazy Dev :slight_smile:

---------- Post updated at 05:58 PM ---------- Previous update was at 03:52 PM ----------

This command worked for me :-

 
awk '{printf("%s",NR%3 ? $0"\t":$0"\n")}' example.out 

You can also use the paste command:

$ paste - - - < file
DATA1	DATA	Inner 
DATA2	DATA	OUTER 
DATA3	TADA	INNER
DATA	SKYP	INNER
TYRE	DESC	INNER

Or xargs:

$ xargs -n3 < file
DATA1 DATA Inner
DATA2 DATA OUTER
DATA3 TADA INNER
DATA SKYP INNER
TYRE DESC INNER

No cat's were harmed in the making of this post :wink:

awk 'NR%3==1 {print ""} 1 {printf "%s ",$0}' file

DATA1 DATA Inner
DATA2 DATA OUTER
DATA3 TADA INNER
DATA SKYP INNER
TYRE DESC INNER