如何使用 AWK 删除以特定数字开头的行?

如何使用 AWK 删除以特定数字开头的行?

当 $1 的第一个值 ($3) 大于 7 时,我需要删除 $1 的所有记录。$1 和 $3 已排序。
原文内容:

101 26 5
101 29 6
101 20 7
104 26 1
104 23 2
105 28 2
105 25 3
108 28 9    
108 27 10

期望的输出:

    101 26 5
    101 29 6       
    101 20 7
    104 26 1
    104 23 2
    105 28 2
    105 25 3

答案1

要过滤掉第 3 列中的值大于或等于 7 的所有输入行:

$ awk '$3 < 7 { print }' <data.in >data.out

只要条件(“字段(列)3 中的值小于 7”)为真,Awk 脚本就会$3 < 7 { print }执行print,输出整个记录(行) 。$3 < 7

对于您的数据,这会产生一个data.out包含以下内容的文件

101 26 1
101 29 2
101 20 3
104 26 1
104 23 2
105 28 2

相关内容