如何从CSV文件中获取数据

如何从CSV文件中获取数据

我的记录下面有一个 CSV 文件。根据 awk 条件,如果 Status Column 值小于 30,则应打印相应 Project(Column1)值 Orange。

awk -F'[,]'  '{ if ( 30 >= 30 ) {print $2,$9} }' user.csv

电流输出

Project Status
Apple "Current (days remaining : 83)"
Orange"Current (days remaining : 30)"

预期产出

Project
Orange
ID,Project,"App System",Version,"Report Date",Status
1,Apple,NAT,0,0,0,0,09/02/2022,"Current (days remaining : 83)"
2,Orange,BAT,0,0,0,0,09/02/2022,"Current (days remaining : 30)"

请有人帮我解决这个问题吗?

答案1

问题是您试图使用 shell 比较运算符-leawk代替awk自己的比较运算符<=。您的文字将要求描述为少于而不是小于或等于,但您的示例输出显示后者。此外,您实际上已经得到了30表达式的两侧,而不是将字段与值进行比较。

最后,您需要将第九个逗号分隔字段拆分为多个部分,以便可以执行数字比较。冒号 ( :) 是执行此任务的方便分隔符。

awk -F, '{ split($9, c, ":"); if (NR==1 || c[2]+0 <= 30) {print $2} }' user.csv

输出

Project
Orange

相关内容