根据列的值删除CSV文件行

时间:2016-01-08 16:55:35

标签: csv awk

以下是我的CSV文件的几行示例:

movieID,actorID,actorName,ranking
1,don_rickles,Don Rickles,3
1,jack_angel,Jack Angel,6
1,jim_varney,Jim Varney,4
1,tim_allen,Tim Allen,2
1,tom_hanks,Tom Hanks,1
1,wallace_shawn,Wallace Shawn,5

我想删除所有排名为>的行4,到目前为止我一直在尝试使用这个awk系列:

awk -F ','  'BEGIN {OFS=","} { if (($4) < 5)  print }' file.csv > file_out.csv

它应该将排名(第4列)小于5的所有行打印到新文件中。我不知道这条线究竟是做什么的,但这不是我想要的。有人能告诉我那条线路出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

不要删除记录,而应考虑您要打印哪些记录。我猜是<=4。在惯用语awk中,您可以将其写为

$ awk -F, '$4<=4' file

1,don_rickles,Don Rickles,3
1,jim_varney,Jim Varney,4
1,tim_allen,Tim Allen,2
1,tom_hanks,Tom Hanks,1