我有一个数组列表,其中包含我正在执行 awk 的不同信息。
number location length value
1 2 40 0.96
--- 5 45 0.97
4 5 47 0.96
--- 5 35 0.95
2 5 60 0.95
--- 3 55 0.96
awk '{if ($2=5 && $3 >= 40 && $3<=50 && $6>=0.96) print $0}' Infile.txt
它确实给了我正确的行--- 5 45 0.97
和4 5 47 0.96
. 但是,如果我想添加另一个条件,例如$1= ---
,只有第一个输出--- 5 45 0.97
awk '{if ($2=5 && $3 >= 40 && $3<=50 && $6>=0.96 && $1="\-\-\-") print $0}' Infile.txt >List_position.txt
它充当替换,将先前的输出返回为1 5 45 0.97
and 1 5 47 0.96
。我试过了$1=---
,$1='\-\-\-'
他们都没有工作。如果我尝试使用$1="---"
,它会将 $1 替换为---
.
我是 awk 的新手,我真的不明白为什么它会进行替换。如果" "
是 awk 中的替换,我该如何设置条件---
?