【发布时间】:2017-08-02 00:34:54
【问题描述】:
我有一个制表符分隔的文件,其中缺失值用点表示。例如:
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 中使用
awk -F"\t" 'BEGIN{OFS="\t"} ( $3 ~ /^[[:alnum:]]+$/ ) {$1=$1; print}' 但我只得到 p>
VAR1 VAR2 VAR3 VAR4
ID2 foo 1 1
我还想将不匹配的行(即非数字且未丢失)保存在单独的文件中。
【问题讨论】: