在unix中打印csv文件

在unix中打印csv文件,unix,csv,awk,Unix,Csv,Awk,我试图只打印csv文件1.csv中的记录,其中列$1不是空的。将满足此条件的记录复制到另一个csv文件2.csv中 但是,它只是重新生成整个file1.csv,其中只包含要打印的列 这里缺少if表达式吗?试试这个 awk'开始{FS=OFS=,} {如果$1!=print}'file1.csv>file2.csv您在{$1!=;OFS=,}中将花括号放在了错误的位置。它应该更像$1!={print…},因此您可以尝试以下方法: awk -F, '$1 {print $1,$5,$6,$7,$8,

我试图只打印csv文件1.csv中的记录,其中列$1不是空的。将满足此条件的记录复制到另一个csv文件2.csv中

但是,它只是重新生成整个file1.csv,其中只包含要打印的列

这里缺少if表达式吗?

试试这个

awk'开始{FS=OFS=,}
{如果$1!=print}'file1.csv>file2.csv

您在{$1!=;OFS=,}中将花括号放在了错误的位置。它应该更像$1!={print…},因此您可以尝试以下方法:

awk -F, '$1 {print $1,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' OFS=, file1.csv > file2.csv
试试这个

awk -F "," '$1 !=""{OFS=","; print $1,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' file1.csv > file2.csv
仅打印第一个字段中具有非空值的行

awk -F "," '$1 !=""{OFS=","; print $1,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20}' file1.csv > file2.csv