我有一个带有很多数字组合的文本文件。 看起来像这样:
1 2 3 4 5 6
1 2 3 4 5 7
1 2 3 4 5 8
1 2 3 4 5 9
1 2 3 4 5 10
...
依此类推...
每行都有 6 个数字,每个数字之间都有一个空格。 数字从 1到37。
我需要一种方法来删除所有少于3个连续数字的行,例如:
1 2 3 13 28 35 不允许。
1 2 3 4 28 35 不允许。
1 2 3 4 5 35 不允许。
1 2 3 4 5 6 不允许。
1 7 8 9 24 30 也不允许。
1 3 5 7 10 11 将被允许。
5 8 14 23 30 37 也将被允许。
特殊示例:
1 2 9 15 16 32是允许的。
你明白我的意思...
因此,我需要一种方法,也许是代码或带有说明的使用方法。
谢谢!
答案 0 :(得分:1)
使用以下awk命令:
awk '($1 + 1 != $2 || $2 + 1 != $3) && ($2 + 1 != $3 || $3 + 1 != $4) && ($3 + 1 != $4 || $4 + 1 != $5) && ($4 + 1 != $5 || $5 + 1 != $6)' < input_file