我在筛选 4 列中有空行的行时遇到问题。
输入:
1242 2021-11-22 Text 5.0
1242 2021-11-22 Text
1242 2021-11-22 Text 5.0
1242 2021-11-22 Text 5.0
4095 2021-11-22 Text
4095 2021-11-22 Text 5.0
4095 2021-11-22 Text
4095 2021-11-22 Text 5.0
4095 2021-11-22 Text
4095 2021-11-22 Text 5.0
我想要输出:
1242 2021-11-22 Text 5.0
1242 2021-11-22 Text 5.0
1242 2021-11-22 Text 5.0
4095 2021-11-22 Text 5.0
4095 2021-11-22 Text 5.0
4095 2021-11-22 Text 5.0
文件大小为 2.0Gb,行数约为 45m。
我已经尝试过这些,但没有一个起作用 - 它返回空或相同的文件:
awk -F: '{if($4 != "") print}'
awk -F '$4 != ""'
awk -F , '$4 != "\"\"" {print}'
答案1
awk 'NF==4' file
或者如果您Text
可以包含空格,则:
awk -F'\t' '$4!=""' file
如果这不是您所需要的全部,那么编辑您的问题以提供更真正具有代表性的示例输入/输出,包括不适用于的情况。
答案2
awk '$4 !~ /^$/' filename
1242 2021-11-22 Text 5.0
1242 2021-11-22 Text 5.0
1242 2021-11-22 Text 5.0
4095 2021-11-22 Text 5.0
4095 2021-11-22 Text 5.0
4095 2021-11-22 Text 5.0