Bash 如果第3列的值大于cap,则在tmp中打印该值不正常

Bash 如果第3列的值大于cap,则在tmp中打印该值不正常,bash,awk,sh,gawk,Bash,Awk,Sh,Gawk,所以$f和$tmp是我迭代的文件。在每个文件中,如果第3列的值大于每个文件不同的cap,则该行将打印在tmp(每个$f除外)文件中。它对某些行正常工作,但某些值较小的行也会被打印。有人能在这方面帮助我吗?下面是如何使用awk读取bash变量 awk '$3>$cap{print $0}' $f > $tmp 或 您的变量没有在单引号内展开'code' 您不需要打印$0,这是无操作的默认操作。 始终双引号引用变量名“$cap”,以确保格式不会丢失。是否cap是bash变量?如果是这

所以$f和$tmp是我迭代的文件。在每个文件中,如果第3列的值大于每个文件不同的cap,则该行将打印在tmp(每个$f除外)文件中。它对某些行正常工作,但某些值较小的行也会被打印。有人能在这方面帮助我吗?

下面是如何使用
awk
读取
bash
变量

 awk '$3>$cap{print $0}' $f > $tmp

您的变量没有在单引号内展开
'code'

您不需要
打印$0
,这是无操作的默认操作。

始终双引号引用变量名“$cap”,以确保格式不会丢失。

是否
cap
是bash变量?如果是这样,请尝试使用
awk-v cap=“$cap”'$3>cap{print$0}'
Err,$tmp是一个输出文件,如果前面有一个
大于号
awk -v var="$cap" '$3>var' "$f" > $tmp
awk '$3>var' var="$cap" "$f" > $tmp