I need to split a file with 250k based on the size (preferable) or number of columns to several (~5) chunks. I am aware of split
command for row-wise splitting, but don't know if there is any similar function to split column-wise.
The number of columns in my file are not even, so the chunks cannot have equal number of columns.
Input:
AA BB CC DD EE FF GG HH II JJ KK LL MM
NN OO PP QQ RR SS TT UU VV WW XX YY ZZ
Desired output:
File1
AA BB CC DD
NN OO PP QQ
File2
EE FF GG HH
RR SS TT UU
File3
II JJ KK LL MM
VV WW XX YY ZZ
Using awk, you can adjust n to the number you expect.
awk '{for (i=1;i<=NF;i++)
printf (i%n==0||i==NF)?$i RS:$i FS > "File" int((i-1)/n+1) ".txt"
}' n=5 file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With