【发布时间】:2021-12-16 11:00:51
【问题描述】:
我的 file.fam 看起来像下面包含大约 22k 行。我想删除包含少于 6 列的行。
06S14031708 36125 0 0 2 2
06S14031716 38824 0 0 1 2
06S14031729 27949 0 0 2 2
06S14031742 30585 0 0 2 2
5 5 0 0 1 1
6 6 0 0 1
12 12 0 0 1 2
16 16 0 0 1 2
18_0004 21213 0 0 1 1
18_0006 35931 0 0 1 1
18_0008 31975 0 0 1 1
【问题讨论】:
-
您要删除
1 2 3 4 6(两个空格,一个空列)吗?当你想保留这个时,一个简单的awk解决方案将失败。 -
@WalterA:我不同意这一点。在我看来,Andrej 的建议也适用。
-
@Cyrus:我的意思是,当您将单个空格视为分隔符时,我的示例有 6 列。第五列存在且为空。
echo "1 2 3 4 6" | awk 'NF >= 6'不打印 6 列的输入行。