【问题标题】:conditional match in awk patternawk 模式中的条件匹配
【发布时间】:2018-08-22 16:40:06
【问题描述】:

我有一个带有 3 个参数的 awk 脚本。前两个参数始终用于进行模式匹配。第三个应该是可选的。如果它 没有通过 那么我想按如下方式进行匹配:

awk -v start=$start -v end=$end -v code=$code '
  start <= \$1 && \$1 < end {
  ...
  }'

如果它通过了,那么我想按如下方式进行匹配:

awk -v start=$start -v end=$end -v code=$code '
  start <= \$1 && \$1 < end && code = $code {
  ...
  }'

我应该如何在 awk 模式中表达这种条件匹配?

【问题讨论】:

    标签: bash awk


    【解决方案1】:

    您可以将此awkor 条件一起使用:

    awk -v start=$start -v end=$end -v code=$code '
      start <= $1 && $1 < end && (code == "" || code == "123") {
      ...
      }'
    

    (code == "" || code == "123"):仅当code 不为空时才会检查条件code == "123"

    也不需要使用\$1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      相关资源
      最近更新 更多