【问题标题】:AWK multiple conditionals not printingAWK 多个条件不打印
【发布时间】:2012-05-31 23:56:32
【问题描述】:

我正在寻找缩放以了解原因:

palabra=s_gonzalez
i=10
awk -vvar1=$palabra -vvvar2=$i '( $1 == var1 ) && ( $2 == var2 ) {print $0}' As

没有打印任何东西。 As 文件包含:

r_castillo  10
flores  6
s_gonzalez  10
o_gutzwiller    12
h_ji    4

提前感谢您的任何建议。

【问题讨论】:

    标签: printing awk multiple-conditions


    【解决方案1】:

    你在哪里:

    vvar2
    

    var2 拼错了吗?

    【讨论】:

    • nope ... awk 允许以 -vvar1-v var1 两种形式传递任何变量
    • -vvvar1中有3个vs
    【解决方案2】:

    作为避免此类问题的一种技术,您可以分配不带-v 的变量。我会重写命令:

    awk '$1==var1 && $2==var2' var1=$palabra var2=$i As
    

    在我看来,在程序之后将变量作为参数而不是在程序之前作为-v 选项分配似乎总是更简单。 (-v 分配在 BEGIN 块中可用,但在这种情况下无关紧要。)

    【讨论】:

      猜你喜欢
      • 2014-08-14
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      相关资源
      最近更新 更多