我遇到以下问题:
nawk -F "," '{if($2<=2)&&($9!=45)&&($11==2348*)) print $2}' abc12* | wc -l
错误在($11==2348*)
。我尝试将此数字放在变量x
中并执行($11==$x*)
。
答案 0 :(得分:0)
如果你的意思是正则表达式匹配,请将其更改为
$ awk -F, '$2<=2 && $9!=45 && $11~/^2348/ {c++; print $2} END{print c}' abc12*
请注意,您也可以在脚本中加入行数。
如果你想要进行等级检查$11=="2348*"
会这样做。将检查该字段是字面2348*
,而没有*
的任何特殊含义。
答案 1 :(得分:0)
看起来你打算使用regexp?
$11==2348*
应该给你一个语法错误
2348*
是不完整的乘法。
对于正则表达式匹配,您必须使用
$11 ~ /2348*/
如果你打算将0归为“8”或
$11 ~ /2348.*/ or may be $11 ~ /2348[0-9]*/
如果初始意图在“2348”之后有任何字符或只有数字
答案 2 :(得分:0)
我认为你的代码可以正常工作,如果你不会再增加一个“)”而不是预期。如果算上它们就有7 ....所以这个($11==2348*))
应该是($11==2348*)