可能的重复:
awk 中的外部变量
下面如何传递这个变量?
这不起作用:
fname=testfile.txt
lsof | awk '/deleted/&&/$fname/ {print $4}' *----no output*
虽然这有效:
lsof | awk '/deleted/&&/testfile.txt/ {print $4}'
3r
答案1
发生这种情况是因为 shell 变量没有用单引号展开。使用awk
with-v
将模式传递到awk
如下所示:
fname=testfile.txt
lsof | awk -v pattern="$fname" '/deleted/ && $0 ~ pattern { print $4 }'