我有一個製表符分隔的文件,其中缺少值用點表示。例如:unix:獲取所有數值,包括非整數
VAR1 VAR2 VAR3 VAR4
ID1 foo 0.1 0.1
ID2 foo 1 1
ID3 foo foo .
ID4 foo foo foo
ID5 foo . 1
ID6 foo -0.1 -0.1
ID7 foo -1 -1
ID8 foo 5e-08 5e-08
我需要提取第三列中的值爲數字(包括非整數,負值,科學記數法)或缺失的所有行。所以我的輸出應該是這樣的:
VAR1 VAR2 VAR3 VAR4
ID1 foo 0.1 0.1
ID2 foo 1 1
ID5 foo . 1
ID6 foo -0.1 -0.1
ID7 foo -1 -1
ID8 foo 5e-08 5e-08
到目前爲止,我已經嘗試使用 awk -F"\t" 'BEGIN{OFS="\t"} ($3 ~ /^[[:alnum:]]+$/) {$1=$1; print}'
在awk中這樣做,但後來我只得到
VAR1 VAR2 VAR3 VAR4
ID2 foo 1 1
我還想保存行在單獨的文件中不匹配(即非數字且不丟失)。
謝謝,它像一個魅力。即使我後來認識到某些價值觀是以科學記數法 – Hill