awk 'BEGIN
{
INPUTFILE ='XXX'; iterator =0;
requestIterator =0;
storageFlag =T;
printFlag =F;
currentIteration =F;
recordCount =1;
while (getline < "'"$INPUTFILE"'")
{
requestArray[requestIterator]++;
requestIterator++;
}
}
if ($1 ~ /RequestId/)
{
FS = "=";
if($2 in requestArray)
{
storage[iterator] =$0;
printFlag =T;
next
}
else
{
storageFlag =F;
next
}
}
else
{
if((storageFlag =='T' && $0 != "EOE"))
{
storage[iterator]=$0; iterator++;
}
else {if(storageFlag == 'F')
{
next
}
else
{
if(printFlag == 'T')
{
for(details in storage)
{
print storage[details] >> FILE1;
delete storage[details];
}
printFlag =F;
storageFlag =T;
next
}
}'
위의 코드에서 일부 구문 오류가 발생합니다. 제발 제발 도와 주실 래요?awk 블록의 구문 분석 오류
AWK {BEGIN INPUTFILE = XXXX] 반복자 = 0; requestIterator = 0, T = storageFlag; printFlag = F; currentIteration = F;도 RecordCount = 1; 동안 (<의 getline "") {requestArray [requestIterator] ++ } {else {storageIl} = {0}}}} else {storageIterator ++;}} if ($ 1 ~/RequestId /) {FS = "requestArray" if (printFlag == T) {if ((storageFlag == T & & $ 0! = EOE) {저장소 (iterator) = $ 0; iterator ++;} else {if (storageFlag == F) (저장소의 세부 정보) {저장소] [세부 정보] >> XXXX; 저장소 삭제 [자세히];} printFlag = F; storageFlag = T; 다음}}}}
awk :^구문 오류
awk :^구문 오류
'F'와'T' 변수를 사용하면 아마도 예상했던 것처럼 작동하지 않을 것입니다. 대신 false의 경우 0을 사용하고, true의 경우 1을 사용하거나 'BEGIN'블록에서 명시 적으로 정의하십시오. 또한''T ''는 따옴표 붙지 않은'T'와 같지 않습니다 (그러나''T'''와''T''는 awk에서 동등합니다). – tripleee
또한'FS' 중간 스크립트의 값을 변경하는 것은 아마도 여러분이 기대하는대로하지 않을 것입니다. 'RequestId' 처리가 끝나면 원래의 값으로 재설정해야합니다. – tripleee
당신은'INPUTFILE'을 정의하지만 그것을 사용하지 않으며 쉘 변수를 대신 같은 이름으로 보간합니다 (이것은 제가 정의하지 않았습니다). 변수를 한 번만 사용하면 왜 변수의 값을 원하니? 단지'getline < "XXX"'을 사용하면 괜찮을 것입니다. – tripleee