The data of $(++NF) covers the first column use awk

43 views Asked by At

I have a tsv file like this:

$ head dd.tsv

rs12184267       1       715265  C       T       0.035954        0.926915        -0.00125872     0.00152815      0.34

rs12184277      1       715367  A       G       0.036063        0.931148        -0.00133899     0.00152247      0.31

rs116801199     1       720381  G       T       0.0362940000000001      0.932145        -0.00120216     0.00151647      0.36

rs12565286      1       721290  G       C       0.036397        0.936321        -0.00126183     0.00151109      0.33

rs116720794     1       729632  C       T       0.036223        0.946579        -0.00107634     0.00150722      0.39

I want to add a new column about Z score, so I used command

awk '{$(++NF)=$8/$9;print}' dd.tsv|head

It returns the following results:

\-0.823689 1 715265 C T 0.035954 0.926915 -0.00125872 0.00152815 0.34

\-0.879485 1 715367 A G 0.036063 0.931148 -0.00133899 0.00152247 0.31

\-0.7927369 1 720381 G T 0.0362940000000001 0.932145 -0.00120216 0.00151647 0.36

\-0.835046 1 721290 G C 0.036397 0.936321 -0.00126183 0.00151109 0.33

\-0.7141234 1 729632 C T 0.036223 0.946579 -0.00107634 0.00150722 0.39

I don't understand why this happends. It seems that the data in the first column is covered by the data that should appear in the ++NF position.

It is worth mentioning that this code performs as expected on awk REPL, but in my machine, it does not work, I've checked version of awk and tried commands like gawk, makw, which have the resluts.

The version I am using is:

$ awk -W version

GNU Awk 5.1.0, API: 3.0 (GNU MPFR 4.1.0, GNU MP 6.2.1) Copyright (C) 1989, 1991-2020 Free Software Foundation.

I would appreciate it if you could give me some suggestions.

0

There are 0 answers