我创建以下awk示例脚本以添加行-“第1行” 在“ 目标”
行之后我们将变量var =“ target ”设置为在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将获得值-“目标”
答案 0 :(得分:0)
使用/var/
运算符代替var
(仅查找确切的字符串~
,而不查找这样命名的变量的内容):
awk -v var="$target" '
1 { print }
done != 1 && $0 ~ var { print "line 1"; done=1 }
' file