awk命令中的变量声明

时间:2013-01-30 08:06:17

标签: awk

我在awk命令中遇到了问题。实际上我使用了变量DELETION_COMMAND,该变量的值为rm -rf。之后,我试图执行下面的行,然后它给出一个错误。如果我使用rm作为同一变量DELETION_COMMAND的值。然后它运作正常。

awk '{print "'${DELETION_COMMAND}'"" ""'${COMPLETE_PATH}'""/"$1"/*"}' ${DB_FEED_FILE} > ${TEMP_FEED_FILE}

错误:

awk: {print "rm
awk:        ^ unterminated string

请建议。
我错在哪里?

2 个答案:

答案 0 :(得分:1)

突出显示已经表明您的错误。您将awk表达式放在单引号之间,然后在表达式中使用单引号。 Awk认为你的表达是这样的:

awk '{print "'

要解决此问题,请使用反斜杠转义单引号。

答案 1 :(得分:0)

使用-v标记将shell变量传递给awk,并且不要忘记引用:

awk -v com="${DELETION_COMMAND}" -v path="${COMPLETE_PATH}" '{ print com, path, "/", $1, "/" }' "${DB_FEED_FILE}" > "${TEMP_FEED_FILE}"