我有一个带3个参数的awk脚本。前两个参数始终用于进行模式匹配。第三个应该是可选的。如果未通过,那么我要按照以下步骤进行匹配:
awk -v start=$start -v end=$end -v code=$code '
start <= \$1 && \$1 < end {
...
}'
如果通过了 ,那么我想按如下方式进行匹配:
awk -v start=$start -v end=$end -v code=$code '
start <= \$1 && \$1 < end && code = $code {
...
}'
我应该如何以awk模式表达此条件匹配?
答案 0 :(得分:1)
您可以将此awk
用于or
条件:
awk -v start=$start -v end=$end -v code=$code '
start <= $1 && $1 < end && (code == "" || code == "123") {
...
}'
(code == "" || code == "123")
:仅在code == "123"
不为空时才检查条件code
。
也无需使用\$1
。