Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 在if/then语句中使用shell变量时出现awk语法错误_If Statement_Variables_Awk_Conditional Statements - Fatal编程技术网

If statement 在if/then语句中使用shell变量时出现awk语法错误

If statement 在if/then语句中使用shell变量时出现awk语法错误,if-statement,variables,awk,conditional-statements,If Statement,Variables,Awk,Conditional Statements,我试图让下面的代码正常工作,但我一直在脚本的awk部分中发现语法错误 简单地说,我想计算一个截止值,并将其作为一个浮点数存储在一个数值变量中(例如,截止值)。我想将此变量传递给awk脚本,我尝试了该脚本,但仍然遇到语法问题,错误如下: awk: syntax error at source line 3 context is >>> <<< 预期的输出应该是一个以制表符分隔的文件(例如,“Spl-129-run10

我试图让下面的代码正常工作,但我一直在脚本的awk部分中发现语法错误

简单地说,我想计算一个截止值,并将其作为一个浮点数存储在一个数值变量中(例如,截止值)。我想将此变量传递给awk脚本,我尝试了该脚本,但仍然遇到语法问题,错误如下:

    awk: syntax error at source line 3
       context is
           >>> <<<
预期的输出应该是一个以制表符分隔的文件(例如,“Spl-129-run10_CUT.txt”),格式为

>Spl-129 TGGGGACC 80序列

在一天结束时,我想利用上面计算的截止变量来过滤小于截止值的序列(使用第三个字段中的值作为比较),条件是如果截止值小于4,则使用截止值2


如果您能提供任何帮助,我们将不胜感激。谢谢

awk sniplet有多个问题。特别是,在
awk
脚本中似乎存在对
awk
的不必要调用:

 awk -v c="$cutoff" -v n="$name" '{ 
            if (c < 4) 
           awk '$3 > 2' tmp >n"_CUT.txt"; 

           else awk '$3 > c' tmp >n"_CUT.txt"; 
    }';
awk-vc=“$cutoff”-vn=“$name”{
if(c<4)
awk'$3>2'tmp>n“_CUT.txt”;
否则awk'$3>c'tmp>n“_CUT.txt”;
}';

没有额外的细节(和样本输入),很难提供有效的解决方案。考虑发布样品输入和输出。特别是,目前还不清楚如何从输入中计算截止值。

请在您的问题中添加预期输出,然后让我们知道。如果您能全面概述您的需求,我相信我们可以在这方面提供更好的帮助。
 awk -v c="$cutoff" -v n="$name" '{ 
            if (c < 4) 
           awk '$3 > 2' tmp >n"_CUT.txt"; 

           else awk '$3 > c' tmp >n"_CUT.txt"; 
    }';