Awk充当替代品

Awk充当替代品,awk,substitution,Awk,Substitution,我有一个数组列表,其中包含我正在进行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.9

我有一个数组列表,其中包含我正在进行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
它充当替换,将以前的输出返回为
1 5 45 0.97
1 5 47 0.96
。 我试过使用
$1=-
$1='\-\-\-'
,但它们都不起作用。如果我尝试使用
$1=“--”
,它会将$1替换为
--


我是awk的新手,我真的不明白为什么它会起到替代作用。如果
在awk中是一个替换,我如何在
--
上设置条件

您执行了赋值
=
而不是比较
=
(赋值结果的计算结果为true,因为它既不是0也不是空字符串)

awk'{if($2==5&&$3>=40&&$3=0.96&&$1==“--”)print}infle.txt>List_position.txt
在条件中,
=
=
赋值的
$2=5
之间也存在“
=
=
的问题,但您没有注意到,因为您希望在那里看到5(感谢您指出这一点)


您也不需要反斜杠。

您已经完成了赋值
=
而不是比较
=
(赋值的结果计算为true,因为它既不是0也不是空字符串)

awk'{if($2==5&&$3>=40&&$3=0.96&&$1==“--”)print}infle.txt>List_position.txt
在条件中,
=
=
赋值的
$2=5
之间也存在“
=
=
的问题,但您没有注意到,因为您希望在那里看到5(感谢您指出这一点)


您也不需要反斜杠。

谢谢!因此,
=
而不是
=
为后面的内容更改$1?事实上,
$2=5
在我的脚本中写得很好,如
$2==5
。我本应该看到不同的是;在C语言和派生语言中,如<代码> AWK < /C> >、C++、java和Perl(仅举几个名字),可以在表达式中分配赋值,赋值是赋值的结果,可以用于另一个赋值(<代码> A= B=23 < /COD>)或比较(请注意先行)。谢谢!因此,
=
而不是
=
为后面的内容更改$1?事实上,
$2=5
在我的脚本中写得很好,如
$2==5
。我本应该看到不同的是;在C语言和派生语言中,如<代码> AWK< /COD>、C++、java和Perl(仅举几个名字),可以在表达式中分配赋值,赋值是赋值的结果,可以用于另一个赋值(<代码> A= B=23 < /COD>)或比较(注意先行)。
 awk '{if ($2=5 && $3 >= 40 && $3<=50 && $6>=0.96 && $1="\-\-\-") print $0}' Infile.txt >List_position.txt
awk '{if ($2==5 && $3 >= 40 && $3<=50 && $6>=0.96 && $1=="---") print }' Infile.txt >List_position.txt