내 코드는
awk '{if (substr($0,81,1)=="1") print substr($0,1,79)"1"; else print $0 }' data > collect_irsc_corrected
awk NF data | awk '{if (substr($0,80,1) == "1") data=substr($0,1,10); if(substr($0,80,1)==""&& substr($0,2,2) != " ") print substr($0,1,15),substr($0,19,10}' > data_irscstation
코드의 두 번째 줄에 있는 오류 메시지는 무엇을 의미합니까?awk: line 1: missing ) near }
편집: 다음은 명확한 형식의 오류 메시지를 생성하는 위의 스크립트입니다 gawk -o-
.
awk '
{
if (substr($0, 80, 1) == "1") {
data = substr($0, 1, 10)
}
if (substr($0, 80, 1) == "" && substr($0, 2, 2) != " ") {
print substr($0, 1, 15), substr($0, 19, 10
}
}
'
다음은 이 코드를 실행하려고 할 때 gawk가 생성하는 오류 메시지입니다.
awk: cmd. line:8: print substr($0, 1, 15), substr($0, 19, 10
awk: cmd. line:8: ^ unexpected newline or end of string
모든 코드를 한 줄에 집어넣는 것보다 디버깅하는 것이 훨씬 쉽다는 것을 알 수 있기를 바랍니다.
답변1
awk
오류 메시지에서 알 수 있듯이 함수 호출의 마지막 스크립트 끝에 닫는 괄호를 잊어버렸습니다 substr($0,19,10)
.