line=catsanddogs;awk -v var="$line" RS= '$3=="`var`"' master_file.sql > jaylog
awk: cmd. line:1: RS=
awk: cmd. line:1: ^ unexpected newline or end of string
我正在尝试将变量合并到此语句中,但我无法使语法正常工作。
以下,当然可以正常使用:
awk -v RS= '$3=="`catsanddogs`"' master_file.sql > jaylog
答案 0 :(得分:3)
有两个问题。
首先,由于在变量赋值之前没有使用-v
选项,awk
认为参数RS=
是脚本,而且不是有效awk
脚本。
其次,awk
不会扩展引用字符串中的变量,而是按字面意思对待它们。您需要将var
变量连接到反引号字符串,而不是将其放在字符串中。
awk -v var="$line" -v RS= '$3=="`" var "`"' master_file.sql > jaylog