【发布时间】:2018-01-16 13:56:09
【问题描述】:
我有一个具有这种特定格式的文件:
T 11722 A 330:0:0:0:0:0 315:0:0:0:0:0
T 11723 B 0:330:0:0:0:0 0:316:0:0:0:0
T 11725 C 0:327:0:0:0:0 0:314:0:0:0:0
T 11726 D 330:0:0:0:0:0 314:0:0:0:0:0
T 11727 E 0:6:0:323:0:0 0:6:0:309:0:0
T 11728 F 0:0:0:328:0:0 0:1:0:314:0:0
T 11729 G 0:325:0:0:0:0 0:315:0:0:0:0
我想删除第 4 列和第 5 列中没有两个值的所有行。
例如,如果一行具有特定格式:
T 11722 A 330:0:0:0:0:0 315:0:0:0:0:0
删除它。
如果它具有以下格式(第 4 列和第 5 列中的每列两个值):
T 11727 E 0:6:0:323:0:0 0:6:0:309:0:0
保留它。
因此,预期的结果应该是:
T 11727 E 0:6:0:323:0:0 0:6:0:309:0:0
T 11728 F 0:0:0:328:0:0 0:1:0:314:0:0
我不知道如何在 unix 下设置一些东西,但我猜应该有一个简单的方法。任何帮助将不胜感激。
非常感谢
【问题讨论】:
-
F行怎么办?
-
根据您的逻辑,预期结果将仅包含 2 行,对吧?
-
@Pieter21,F 行第 5 列有两个值,所以我想保留它。
-
@RomanPerekhrest,是的,预期结果将仅包含 2 行。我会用预期的结果更新我的问题。
-
@AP38,我还注意到第 4 列中每列有两个值 OR 5,但不是 和
标签: unix awk lines text-processing