- 파일이 없으면: -1
- 읽어들일 레코드가 없으면: 0
- 읽기에 성공하면: 1
표준입력파일 외의 파일을 읽어들이고 싶은 경우에는
while ( (getline < "fileName") > 0 ) { what_you_want_to }로 처리해 준다.
주의점:
- 위의 fileName으로 read-in하는 것은 한 파일당 한번만 read-in한다. 즉, 표준입력파일의 레코드를 읽어들일때 마다 처리되지 않는다. -> 보조 DATA 파일을 read-in하는데 이용.
- getline하는 동안 FILENAME, FNR, NR은 변하지 않는다. 즉, getline이 execution하기 직전의 FILENAME, FNR, NR 값이 유지된다.
예시:
input.dat
firstLine
secondLine
thirdLine
foruthLine
fifthLine
auxData.dat
auxFirstLine
auxSecondLine
auxThirdLine
test.awk
#!/usr/bin/gawk
#
BEGIN {
}
{
print "FILENAME:" FILENAME "/ FNR:" FNR "/ NR:" NR
print "$0 is :" $0
print "----------------------------------------"
while ( (getline < "auxData.dat") > 0 ) {
print "FILENAME:" FILENAME "/ FNR:" FNR "/ NR:" NR
print "$0 is :" $0
print "==========================================="
}
}
END {
}
OutPut
FILENAME:input.dat/ FNR:1/ NR:1
$0 is :firstLine
----------------------------------------
FILENAME:input.dat/ FNR:1/ NR:1
$0 is :auxFirstLine
===========================================
FILENAME:input.dat/ FNR:1/ NR:1
$0 is :auxSecondLine
===========================================
FILENAME:input.dat/ FNR:1/ NR:1
$0 is :auxThirdLine
===========================================
FILENAME:input.dat/ FNR:2/ NR:2
$0 is :secondLine
----------------------------------------
FILENAME:input.dat/ FNR:3/ NR:3
$0 is :thirdLine
----------------------------------------
FILENAME:input.dat/ FNR:4/ NR:4
$0 is :foruthLine
----------------------------------------
FILENAME:input.dat/ FNR:5/ NR:5
$0 is :fifthLine
----------------------------------------
댓글 없음:
댓글 쓰기