awk assign output of array to specific field-number

With this script i want to print the output to a specific field-number . Can anybody help?

awk 'NR=FNR{split(FILENAME,fn,"_");nr[$1]=$2;f = $1} END{for (i=1;i<=f;i++) print i,$fn[2]=nr}' input_5.csv input_6.csv

input_5.csv

4 135
5 185
6 85
11 30

input_6.csv

1 90
3 58
4 135
7 60
8 55
10 63

output.csv

nr     $5  $6
1     90
2
3     58
4    135   135
5    185
6     85
7           60
8           55
9
10          63
11    30 
$ cat fmrg.awk

!F { F=FILENAME; FILENUM=1 }
F != FILENAME { FILENUM++; F=FILENAME }

{
        if((!MIN) ||(MIN>$1)) MIN=$1
        if((!MAX) ||(MAX<$1)) MAX=$1
        R[$1]++; A[$1,FILENUM]=$2
}

END {
        for(X=MIN; X<=MAX; X++)
        {
                printf("%s", X);
                for(N=1; N<=FILENUM; N++)       printf("\t%s", A[X, N]);
                printf("\n");
        }
}

$ $ awk -f fmrg.awk input_6.csv input_5.csv
1       90
2
3       58
4       135     135
5               185
6               85
7       60
8       55
9
10      63
11              30

$
1 Like