删除包含空字段的行

删除包含空字段的行

我想删除最后一行 $7 中包含空字段的行

文件:

1 1479870 5022248660 1 40001 189445122 740020
1 1911574 3015889020 1 33001 162049034 633004
1 1569783 5029193930 1 22001 133687297 522216
1 2069616 1025856960 2 25001 185608704 
1 1741598 5021128160 1 44001 164870942 644027
1 1052941 5020319300 1 10001 156161802 610007
1 1686734 5020347480 1 13001 131405824 513304
1 1872263 5029089700 1 23001 185092353 723017

期望的输出:

1 1479870 5022248660 1 40001 189445122 740020
1 1911574 3015889020 1 33001 162049034 633004
1 1569783 5029193930 1 22001 133687297 522216
1 1741598 5021128160 1 44001 164870942 644027
1 1052941 5020319300 1 10001 156161802 610007
1 1686734 5020347480 1 13001 131405824 513304
1 1872263 5029089700 1 23001 185092353 723017

答案1

尝试一下这个:

awk  '$7!=""' file > final_output

答案2

如果字段由一个空格字符分隔,而不是任何空白字符序列,则如果

1 2  4 5 6 7

如果一行有第七个字段但没有第三个字段,你会这样做:

awk -F '[ ]' '$7 != ""' < file > final_output

[ ]是匹配空格字符的正则表达式。我们不使用-F ' '单个空格,因为字段分隔符具有特殊含义(给出默认字段分割行为,其中一个或多个空白字符的任何序列都充当分隔符以及前导和尾随空白将被忽略)。

相关内容