结束时出现AWK分析错误

结束时出现AWK分析错误,awk,Awk,最后,我的代码中不断出现解析错误 C:\Users\user\Documents\hafwork\hafLatest\CRM>AWK.EXE -f testking123.awk sample.txt awk: testking123.awk:85: END{ awk: testking123.awk:85: ^ parse error awk: testking123.awk:90: awk: testking123.awk:90: ^ parse error 这是我的代码: BEGI

最后,我的代码中不断出现解析错误

C:\Users\user\Documents\hafwork\hafLatest\CRM>AWK.EXE -f testking123.awk sample.txt
awk: testking123.awk:85: END{
awk: testking123.awk:85: ^ parse error
awk: testking123.awk:90:
awk: testking123.awk:90: ^ parse error
这是我的代码:

BEGIN{

FS= "|"
countA=CountB=0;

}

{

id=substr($2,1,1);
++file[id]




if ($3 == "P")
{
if(countB==0){
for(dupes in B)
print B[dupes] > "Bdupes.txt"
}

else if(countA==0){
for(dupes in A)
print A[dupes] > "Adupes.txt"
}

else if(countA==countB)
i=1
while(i<countA){

printA[i] > "mixdupes.txt"
printB[i] > "mixdupes.txt"

}


if(A<B && A!=0){

i=1
while(i<(A+1)){
printA[i] > "mixdupes.txt"
printB[i] > "mixdupes.txt"
}

i=A+1
while(i<(B+1)){
print B[i]> "Bdupes.txt"


  if(id=="A"){
    A[1]=$0
    countA=1;
    countB=0;

    }

  else if (id=="B"){
    B[1]=$0
    countA=0;
    countB=1;
    }
  }
elseif ($3 == "C")
{

   if(id=="A"){
    countA++;
    A[countA]=$0
    }

else if(id=="B"){
   countB++;
    B[countB]=$0
    }






}
}

END{

for (file_id in file)
print file_id ":", file[file_id]

}
开始{
FS=“|”
countA=CountB=0;
}
{
id=子项R($2,1,1);
++文件[id]
如果($3==“P”)
{
如果(countB==0){
用于(B中的重复)
打印B[复制]>“Bdupes.txt”
}
else if(countA==0){
用于(A中的重复)
打印[复制]>“Adupes.txt”
}
else if(countA==countB)
i=1
而(i“mixdups.txt”
printB[i]>“mixtupes.txt”
}
如果(A)“mixdups.txt”
}
i=A+1
而(i“Bdupes.txt”
如果(id=“A”){
A[1]=0美元
countA=1;
countB=0;
}
否则,如果(id=“B”){
B[1]=0元
countA=0;
countB=1;
}
}
elseif($3==“C”)
{
如果(id=“A”){
countA++;
A[countA]=0美元
}
否则,如果(id=“B”){
countB++;
B[countB]=0美元
}
}
}
结束{
用于(文件中的文件\u id)
打印文件id“:”,文件[文件id]
}

有人能告诉我这是为什么吗?我已经尝试过删除空格等。我不确定这是否与脚本的结尾有关,或者脚本中是否有错误。对于AWK来说,这是非常新的,所以不能100%确定。TIA

通常会发生这种情况,因为您有不匹配的
{或}

我刚刚在我的vim中复制了你的代码,并做了一个
gg=G

您缺少两个关闭的
}
s


您总共有15个
{
,但只有13个
}

缩进脚本几乎总是有帮助的。谢谢Kent。现在出现错误:致命:尝试在标量上下文中使用数组'A'。那么我需要做什么呢?对不起,我真的很困惑,对这一点很陌生!TIA@user2428639我不知道。因为我不知道你想做什么…我建议你打开一个新的问题,在那里你可以明确要求,粘贴代码,指出问题,通过一些示例输入和预期输出更好。感谢您的建议(Kent:)@用户2428639如果您的第一个问题已经解决,请不要忘记将答案标记为已接受。您可以单击答案旁边的复选标记将其从空心切换为绿色。查看您是否有任何疑问!