如何使用 awk 匹配多个变量模式?

How do I use awk to match multiple variable patterns?

我想使用 awk 来匹配多个变量模式。这是我目前所拥有的:

match=`awk -v "$var1\|$var2\|$var3" 'BEGIN{FS=":"; OFS="-"}
 ~ {print}' $file`

感谢任何帮助。

您需要使用 awk -v var1=val1 语法分别传递 3 个变量,然后在 awk 正则表达式中使用交替:

match=$(awk -v v1="$var1" -v v2="$var2" -v v3="$var3" 'BEGIN{FS=":"; OFS="-"}
 ~ v1 "|" v2 "|" v3' "$file")