我有一个形式的foreach循环的输出:
ABC123603LP 44Bq AAAA
ABC123603P 3BU AAAA
ABC123603ZZP AAAA
ABC123604DP 3BU BBBB
ABC123604LP 44Bq BBBB
ABC123605AP 4q CCCC
ABC123605DP 33BGU CCCC
ABC123606AP 35Bjq DDDD
ABC123606DP 4B DDDD
从这我希望将第1列和第2列打印到终端
echo ... | awk '{print $1, $2}'
但是,第三行和其他行将打印ABC123603ZZP AAAA,因为在这种情况下第二列为空白。我该如何解决?
最佳答案
打印前检查字段数:
$ awk 'BEGIN {OFS="\t"}{ if (NF==2) print $1; else print $1, $2}' file
ABC123603LP 44Bq
ABC123603P 3BU
ABC123603ZZP
ABC123604DP 3BU
ABC123604LP 44Bq
ABC123605AP 4q
ABC123605DP 33BGU
ABC123606AP 35Bjq
ABC123606DP 4B
关于linux - 当列偶尔为空时,awk应对,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13969984/