1
awk '($1<1)|| ($1>22) {print $2}' $input > $output

如果我将此行放入Nextflow(用 groovy(Java) 编写)管道脚本中,它将显示一个错误,指出变量表示法的问题(这些:$1,$2)。它在Nextflow之外工作正常。我还能如何在此处输入变量以使其正常工作?

我试过了

 awk '(${1}<1)|| (${1}>22) {print ${2}}' $input > $output

输出一个空文件。所需的输出将是它只在Nextflow中工作。

4

1 回答 1

2

如果您的流程脚本部分包含在三引号中,请使用 \ 转义您的文字 $:

"""
awk '(\$1<1)|| (\$1>22) {print \$2}' $input > $output

"""

使用当前方法进行包装会导致 nextflow 查找变量 1 和 2。

https://www.nextflow.io/docs/latest/script.html#string-interpolation

于 2020-02-13T13:14:52.923 回答