使用awk获得错误的结果

时间:2015-08-31 06:24:21

标签: csv awk

我有一个数据集,我试图从名为ambienf的列中选择值大于20的行来选择行。

首先,找到列号:

$ csvcut -n head.csv | grep ambienf
287: ambienf

接下来,查看值:

$ csvcut -c name,ambienf head.csv | head -n 25 | csvlook
|-----------+-------------------|
|  name     | ambienf           |
|-----------+-------------------|
|  87892625 |                   |
|  87881401 | 31.3340396881104  |
|  87881407 | 23.3398342132568  |
|  87881397 |                   |
|  87892628 |                   |
|  87892632 |                   |
|  87881394 | 28.8716373443604  |
|  87790338 |                   |
|  87797472 |                   |
|  87788161 | 32.2283515930176  |
|  87790894 | 32.7088813781738  |
|  87871678 | 25.5556793212891  |
|  87767487 | 33.3377380371094  |
|  87759792 |                   |
|  87751064 |                   |
|  87772221 |                   |
|  87751071 |                   |
|  87751061 |                   |
|  87751067 |                   |
|  87772224 |                   |
|  87756101 | 32.2252311706543  |
|  87747384 | 30.0030345916748  |
|  87767382 | 22.2242679595947  |
|  87720411 |                   |
|  87728035 |                   |
|  87711021 |                   |
|-----------+-------------------|

现在,我要选择名称($ 3)和ambienf($ 287),其中ambienf是> 20:

$ awk -F , '$287 > 20 {print $3 "," $287}' head.csv
name ambienf

^这就是我得到的所有输出。如果我awk -F, '{print $3 "," $287}' head.csv | head -20 | csvlook,我得到的结果与上面的csvcut -c name,ambienf命令相同。

任何有关故障排除的帮助都将不胜感激!

1 个答案:

答案 0 :(得分:1)

问题是引用某些原因的数值。我找到了另一个版本的数据集,其中数字没有引用,我的命令在它上面运行。谢谢@karakfa!