是否可以将 AWK 命令拆分为多行而不出错?

Is it possible to split an AWK command in multiple lines, without having an error?

我有一个很长的 AWK 命令

awk -v AWK_SECTION_TITLE="$SECTION_TITLE" -v AWK_ADDED="$ADDED" -v AWK_CHANGED="$CHANGED" -v AWK_FIXED="$FIXED" -v AWK_REMOVED="$REMOVED" 'NR=='"$CHANGELOG_INSERT_LINE"'{
    print AWK_SECTION_TITLE
    ....

我想知道是否可以将第一部分(我在此处设置 awk 作用域的变量)分成多行,使用一些反斜杠或任何其他语法。

我试过这种方法:

awk
    \ -v AWK_SECTION_TITLE="$SECTION_TITLE"
    \ -v AWK_ADDED="$ADDED"
    ...

这就是错误

usage: awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...]
script.sh: line 65:  -v: command not found

我试过这种方法:

awk -v AWK_SECTION_TITLE="$SECTION_TITLE"
    \ -v AWK_ADDED="$ADDED" -v AWK_CHANGED="$CHANGED"

这就是错误

awk: no program given

我试过这种方法:

awk -v AWK_SECTION_TITLE="$SECTION_TITLE"
    \ -v AWK_ADDED="$ADDED" -v AWK_CHANGED="$CHANGED"

这就是错误

awk: no program given

提前致谢。

当你添加一个转义符时,它是为了转义它后面的字符。将它放在一行的开头会转义该行上它后面的任何字符,而不是你想在前一行末尾转义的命令终止换行符。

做:

cmd foo \
    bar

而不是:

cmd foo
\    bar