代码之家  ›  专栏  ›  技术社区  ›  user1179317

用awk否定条件

  •  0
  • user1179317  · 技术社区  · 3 年前

    我似乎不知道如何用awk来否定我的病情。

    例如,假设我有

    g ha
    a bb
    g hc
    f cd
    t de
    g pf
    

    我可以只打印带有g的,第一列和第二列以h开头的:

    cat test.txt | awk '$1 ~ /g/ && $2 ~ /^h/'
    

    但我该如何做相反的事情,我只想打印那些不是的 g 首先 h .基本上要有输出:

    a bb
    f cd
    t de
    g pf
    
    1 回复  |  直到 3 年前
        1
  •  2
  •   Cyrus    3 年前

    如果 $1 ~ /g/ && $2 ~ /h/ 如果为true,则继续下一行,否则输出当前行。

    awk '$1 ~ /g/ && $2 ~ /h/{next} {print}' test.txt
    

    输出:

    a b
    f c
    t d
    g p