我想提取包含超过特定整数的数字的行,例如,如果我有以下代码
INTEGER ( 16 )
INTEGER ( 16 )
INTEGER ( 6 )
INTEGER ( 18 )
我想只保留包含INTEGER(n <= 16)的行,所以我希望将其作为输出
INTEGER ( 16 )
INTEGER ( 16 )
INTEGER ( 6 )
答案 0 :(得分:2)
如果你可以确定数字之前和之后总是有空格,那么你可以使用这个awk:
awk '$3 <= 16' file
这只是检查第三个字段是否小于或等于16.
然而,使用这样的东西可能更安全:
awk -F'[^0-9]+' '/INTEGER *\( *[0-9]+ *\)/ && $2 <= 16' file
这会将字段分隔符设置为任意数量的非数字字符,因此第一个字段为空,第二个字段包含您感兴趣的数字。如果该行匹配该模式(方面是灵活的间距)和数字小于或等于16,打印行。