提取超过阈值的列的行,列中带有分隔符

提取超过阈值的列的行,列中带有分隔符

我的数据文件如下:

name,age,quote,children
Mary,50,Love For All, Hatred For None.,3
John,61,I think, therefore, I am,2
June,42,You're braver than you believe, and stronger than you seem, and smarter than you think,1

我想将children > 1 的行提取到output.txt。但是,我无法真正指定列 $4,因为列中有逗号quote

我应该如何处理这个问题?我已经尝试过了awk -F, '$-1 > 1' data > output.txt,但它不像 python/java 那样读取 $-1 。

答案1

在 awk 中,最后一个字段值可以根据字段分隔符通过$NF、倒数第二个等访问。$(NF-1)所以你需要

awk -F, '$NF > 1' data

另外,不要忘记首先修复生成无效 .csv 文件的源程序。

相关内容