根据列的值删除CSV文件的行

根据列的值删除CSV文件的行,csv,awk,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行: aw

以下是我的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
awk-F',''BEGIN{OFS=“,”}{if($4)<5)print}'file.csv>file_out.csv

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

不要删除记录,而是想想要打印哪些记录。我猜是
猜猜
如果第4列的值小于5,这意味着什么。是的,如果这一行起作用,你改变
4
应该去,对吗?@Kent不把所有值大于4的行输出到文件\u out.csv中吗?在我上面的例子中,它会将
1,jack_angel,jack angel,6
1,wallace_shawn,wallace shawn,5
打印到文件\u out.csv中,最后一行也是(5>4)。那你期望什么呢?
$ 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