我在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
请建议。
我错在哪里?
答案 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}"