
이 간단한 awk 계산기 프로그램과 그 출력을 고려하십시오.
$ awk '{while (getline) {n=0;for(i=NF;i>0;i--)n+=$i; print "sum: " n;}}'
1 1
2 2
sum: 4
3 3
sum: 6
첫 번째 입력 행이 어떻게 1 1
합계를 생성하지 않는지 확인하세요. 모든 연속 생산 라인은 예상대로 작동합니다. 입력의 첫 번째 줄에 합계가 인쇄되지 않는 이유는 무엇입니까?
답변1
를 사용하면 getline
첫 번째 줄이 삭제됩니다. 다음으로 변경해 보세요.
awk '{n=0;for(i=NF;i>0;i--)n+=$i; print "sum: " n;}'
본질적으로 awk
입력 행은 암시적으로 반복됩니다. 따라서 코드는 n=0;for(i=NF;i>0;i--)n+=$i; print "sum: " n;
각 입력 줄에 대해 실행됩니다. 여기서는 행을 명시적으로 반복할 필요가 없습니다.