代码之家  ›  专栏  ›  技术社区  ›  King David

与作为变量传入awk的regex进行比较[重复]

  •  -2
  • King David  · 技术社区  · 6 年前

    我创建下面的awk示例脚本以添加行-“行1” 在排队之后” 目标

    我们设置变量var=” 目标 “,要导出awk中的值目标,

    但当我们运行脚本时,似乎awk没有读取 var

    带awk的脚本:

    [root@master tmp]# more test.bash
    #!/bin/bash
    
    
    awk -v var="target" '1; done != 1 && /var/ {
                    print "line 1"
                    done = 1
                    }' file
    

    文件:

    [root@master tmp]# more file
    
    
    target
    

    当我运行脚本时,我们得到:

    [root@master tmp]# ./test.bash
    
    
    target
    

    而预期结果应该是

    target
    line 1
    

    我很高兴知道awk语法有什么问题,

    如何修复它,使awk中的var得到值-“目标”

    1 回复  |  直到 6 年前
        1
  •  0
  •   Charles Duffy    6 年前

    /var/ var ~

    awk -v var="$target" '
    1 { print }
    done != 1 && $0 ~ var { print "line 1"; done=1 }
    ' file