【问题标题】:Is there any way to pass shell variable in awk pattern command like below?有没有办法在 awk 模式命令中传递 shell 变量,如下所示?
【发布时间】:2022-11-11 01:55:58
【问题描述】:

这是我想在 DEFINE 关键字位置传递变量但失败的通用命令

awk '/DEFINE/,/REPLACE/' file

这是我尝试过的

line=DEFINE
awk -v myvar=$line '/myvar/,/REPLACE/' file

【问题讨论】:

    标签: shell awk


    【解决方案1】:

    以下应该有效:

    line=DEFINE
    awk -v myvar="$line" '($0~myvar),/REPLACE/{print}'
    

    例子:

    $ seq 1 10 | awk -v x=5 '($0~x),/8/'
    5
    6
    7
    8
    

    更多详情请见Passing variables to range patterns in awk

    【讨论】:

      猜你喜欢
      • 2020-03-28
      • 1970-01-01
      • 2019-02-01
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2013-06-26
      相关资源
      最近更新 更多