user2262751
user2262751

Reputation: 21

How to append columns of data using awk

I have a file in this format:-

1   2   3   4
5   6   7   8
9   10  11  12 

I need assistance to append the columns in a loop like this

1
5
9

2
6
10

...

Upvotes: 2

Views: 200

Answers (1)

Kent
Kent

Reputation: 195129

this line should work with dynamic rows and columns

 awk '{for(i=1;i<=NF;i++)a[NR][i]=$i}END{for(i=1;i<=NF;i++){for(j=1;j<=NR;j++)print a[j][i]; print ""}}' file

it looks better in this format:

awk '{for(i=1;i<=NF;i++)a[NR][i]=$i}
    END{
            for(i=1;i<=NF;i++){
                for(j=1;j<=NR;j++)
                    print a[j][i]
                print ""
            }
        }' file

with your example:

kent$  awk '{for(i=1;i<=NF;i++)a[NR][i]=$i}END{for(i=1;i<=NF;i++){for(j=1;j<=NR;j++)print a[j][i]; print ""}}' file
1
5
9

2
6
10

3
7
11

4
8
12

Upvotes: 2

Related Questions