未打印awk部分匹配

未打印awk部分匹配,awk,match,partial,Awk,Match,Partial,我试着用实际的变量输入对我的var进行编码,我发现这段代码是有效的。然而,当我尝试例如/^ppl$/搜索apple的部分匹配时,它并没有显示出来。有人能给我一些关于如何将变量解析到命令中的指导吗?试试这个: awk -F"," -v var=$test '$1 ~ /^var$/{print}' alpha.txt awk -F"," '$1 ~ /^'"$test"'$/{print}' alpha.txt 如果要在开始和结束时锚定匹配,只需使用= awk -F"," -v var=$te

我试着用实际的变量输入对我的var进行编码,我发现这段代码是有效的。然而,当我尝试例如
/^ppl$/
搜索apple的部分匹配时,它并没有显示出来。有人能给我一些关于如何将变量解析到命令中的指导吗?

试试这个:

awk -F"," -v var=$test '$1 ~ /^var$/{print}' alpha.txt
awk -F"," '$1 ~ /^'"$test"'$/{print}' alpha.txt

如果要在开始和结束时锚定匹配,只需使用
=

awk -F"," -v var=$test '$1 ~ "^"var"$"' alpha.txt

除非
$test
包含正则表达式,在这种情况下@Kent的答案是正确的。

/^ppl$/
不会给出与apple的部分匹配,因为您要求该行只包含
ppl
^
表示行的开始,
$
表示行的结束。非常感谢。我可以知道,如果我希望获得部分匹配,例如apple day,我如何修改代码来实现它?只需使用
ppl
;这对字符串中可能发生匹配的位置没有限制。谢谢。我可以知道如果我想在字段中检索任何带有空格的匹配项,我该怎么做吗?@user1823986您的意思是您的
$test(var)
?若要匹配任何空格,也就是说,可以在字段的开头、结尾或中间。只要
$1~var
哦。非常感谢。我想我把它和我的阅读弄混了。
awk -F"," -v var=$test '$1 == var' alpha.txt