繁体   English   中英

如何在使用awk的条件下删除csv文件行?

[英]How to remove lines of csv files under conditions using awk?

我有3列的file.csv看起来像这样:

"/cw-0yLGNekxk4Vup/cwdd",-112.263,1
"001aCqAT2O+SbZfeC7UmhQ",,0
"/001DLIWmCvBwVCJrQjiQA",310,0
"fasdDLIWmCvBwVCJrQjiQA",0,0
...

但有些行没有第2列的值或0列2的值,我想删除这些行以获得:

"/cw-0yLGNekxk4Vup/cwdd",-112.263,1
"/001DLIWmCvBwVCJrQjiQA",310,0
...

如何在Ubuntu中使用awk做到这一点?

读错问题

在awk中删除行

awk -F, 'NF!=3' file

其实这样比较好

awk -F, '$2' file

假设$ 2可以是0

awk -F, '$2!=""' file
awk -F, '$2~/./' file

为什么不考虑使用grep

grep -v '^[^,],,'  file

您可以尝试以下awk命令,

$ awk '/",,/{next}{print}' file
"/cw-0yLGNekxk4Vup/cwdd",-112.263
"/001DLIWmCvBwVCJrQjiQA",310

要么

$ awk -F, 'NF>2{next;}{print}' file
"/cw-0yLGNekxk4Vup/cwdd",-112.263
"/001DLIWmCvBwVCJrQjiQA",310

要么

$ awk -F, 'NF<3' file
"/cw-0yLGNekxk4Vup/cwdd",-112.263
"/001DLIWmCvBwVCJrQjiQA",310

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM