if 语句中带星号的错误

An error with asterisk in if statement

我在使用以下代码时遇到问题:

nawk -F "," '{if(<=2)&&(!=45)&&(==2348*)) print }' abc12* | wc -l

错误在(==2348*)。我试图将这个数字放在变量 x 中并执行 (==$x*).

如果你的意思是正则表达式匹配,请将其更改为

$ awk -F, '<=2 && !=45 && ~/^2348/ {c++; print } END{print c}' abc12*

请注意,您也可以在脚本中加入行数。

如果你想要平等检查 =="2348*" 就可以了。将检查该字段字面上的 2348* 没有 *.

的任何特殊含义

您似乎打算使用正则表达式?

==2348* 

应该给你一个语法错误

2348*

是不完全乘法。

对于正则表达式匹配,您必须使用

 ~ /2348*/

如果您打算从零到人“8”或

 ~ /2348.*/ or may be  ~ /2348[0-9]*/

如果初始意图是在“2348”之后有任何字符或只有数字

我认为如果您不比预期多添加一个“)”,您的代码就可以正常工作。如果你数一数你有 7.... 所以这个 (==2348*)) 实际上应该是 (==2348*)