linux awk : ^ unexpected newline or end of string
运行一个awk脚本时报了好多上面的错误?怎么改啊
脚本:#!/usr/bin/gawk -f
BEGIN {
FS="\t+"
months="Jan Feb Mar Apr May Jun Aug Sep Oct Nov Dec"
}
function monthdigit(mymonth)
{
tmp=((index(months,mymonth)+3)/4
return tmp
}
function doincome(mybalance)
{
mybalance[curmonth,$3]+=amount
mybalance[0,$3]+=amount
}
function doexpense(mybalance)
{
mybalance[curmonth,$2]-=amount
mybalance[0,$2]-=amount
}
function dotransfer(mybalance)
{
mybalance[0,$2]-=amount
mybalance[curmonth,$2]-=amount
mybalance[0,$3]+=amount
mybalance[curmonth,$3]+=amount
}
{
curmonth=monthdigit(substr($1,4,3))
amount=$7
#record all the categories encountered
if($2!="-")
globcat[$2]="yes"
if($3!="-")
globcat[$3]="yes"
#tally up transaction proerly
if($2=="-")
{
if($3=="-")
{
print "Error:inc and exp fields are both blank"
exit 1
}
else
{
#this is income
doincome(balance)
if($5=="Y")
doincome(balance2)
}
}
else if($3=="-")
{
#this is an expense
doexpense(balance)
if($5=="Y")
doexpense(balance2)
}
else
{
#this is a transfer
dotransfer(balance)
if($5=="Y")
dotransfer(balance2)
}
}
END{
bal=0
bal2=0
for(x in globcat)
{
bal = bal+balance[0,x]
bal2 = bal2+balance2[0,x]
}
printf("Your available funds:%10.2f\n",bal)
printf("Your account balance:%10.2f\n",bal2)
}
错误提示:[root@localhost c]# ./account.awk account.txt
gawk: ./account.awk:9: tmp=((index(months,mymonth)+3)/4
gawk: ./account.awk:9: ^ unexpected new end of string
gawk: ./account.awk:12: function doincome(mybalance)
gawk: ./account.awk:12: ^ unexpected newline of string
gawk: ./account.awk:14: mybalance[curmonth,$3]+=amount
gawk: ./account.awk:14: ^ unexpected ner end of string
gawk: ./account.awk:15: mybalance[0,$3]+=amount
gawk: ./account.awk:15: ^ unexpected newline of string
gawk: ./account.awk:17: function doexpense(mybalance)
gawk: ./account.awk:17: ^ unexpected newlind of string
gawk: ./account.awk:19: mybalance[curmonth,$2]-=amount
gawk: ./account.awk:19: ^ unexpected new end of string
gawk: ./account.awk:20: mybalance[0,$2]-=amount
gawk: ./account.awk:20: ^ unexpected newline or string
gawk: ./account.awk:22: function dotransfer(mybalance)
gawk: ./account.awk:22: ^ unexpected newlind of string
gawk: ./account.awk:24: mybalance[0,$2]-=amount
gawk: ./account.awk:24: ^ unexpected new end of string
gawk: ./account.awk:25: mybalance[curmonth,$2]-=amount
gawk: ./account.awk:25: ^ unexpewline or end of string
gawk: ./account.awk:26: mybalance[0,$3]+=amount
gawk: ./account.awk:26: ^ unexpected new end of string
gawk: ./account.awk:27: mybalance[curmonth,$3]+=amount
gawk: ./account.awk:27: ^ unexpected new end of string
gawk: ./account.awk:30: curmonth=monthdigit(substr($1,4,3))
gawk: ./account.awk:30: ^ unexpectene or end of string
gawk: ./account.awk:31: amount=$7
gawk: ./account.awk:31: ^ unexpected newline or end of string
gawk: ./account.awk:34: if($2!="-")
gawk: ./account.awk:34: ^ unexpected newline or end of stri
gawk: ./account.awk:35: globcat[$2]="yes"
gawk: ./account.awk:35: ^ unexpected newline or enring
gawk: ./account.awk:36: if($3!="-")
gawk: ./account.awk:36: ^ unexpected newline or end of stri
gawk: ./account.awk:37: globcat[$3]="yes"
gawk: ./account.awk:37: ^ unexpected newline or etring
gawk: ./account.awk:39: if($2=="-")
gawk: ./account.awk:39: ^ unexpected newline or end of stri
gawk: ./account.awk:41: if($3=="-")
gawk: ./account.awk:41: ^ unexpected newline or end of
gawk: ./account.awk:49: doincome(balance)
gawk: ./account.awk:49: ^ unexpected ner end of string
gawk: ./account.awk:50: if($5=="Y")
gawk: ./account.awk:50: ^ unexpected newline of string
gawk: ./account.awk:51: doincome(balance2)
gawk: ./account.awk:51: ^ unexpectene or end of string
gawk: ./account.awk:54: else if($3=="-")
gawk: ./account.awk:54: ^ unexpected newline or end of
gawk: ./account.awk:57: doexpense(balance)
gawk: ./account.awk:57: ^ unexpected newline of string
gawk: ./account.awk:58: if($5=="Y")
gawk: ./account.awk:58: ^ unexpected newline or ending
gawk: ./account.awk:59: doexpense(balance2)
gawk: ./account.awk:59: ^ unexpected newlind of string
gawk: ./account.awk:64: dotransfer(balance)
gawk: ./account.awk:64: ^ unexpected newline of string
gawk: ./account.awk:65: if($5=="Y")
gawk: ./account.awk:65: ^ unexpected newline or end ng
gawk: ./account.awk:66: dotransfer(balance2)
gawk: ./account.awk:66: ^ unexpected newlind of string
gawk: ./account.awk:70: bal=0
gawk: ./account.awk:70: ^ unexpected newline or end of string
gawk: ./account.awk:71: bal2=0
gawk: ./account.awk:71: ^ unexpected newline or end of string
gawk: ./account.awk:72: for(x in globcat)
gawk: ./account.awk:72: ^ unexpected newline or end og
gawk: ./account.awk:74: bal = bal+balance[0,x]
gawk: ./account.awk:74: ^ unexpected newline of string
gawk: ./account.awk:75: bal2 = bal2+balance2[0,x]
gawk: ./account.awk:75: ^ unexpected nor end of string
gawk: ./account.awk:76: printf("Your available funds:%10.2f"\n"",bal)
gawk: ./account.awk:76: ^ backslashst character on line
account.txt:23 Jan 2000 - inco - Y Boss Man 2001.0
23 Jan 200 food - - Y Jimm's Buffet 30.25
23 Feb 2000 - inco - Y Boss Man 2001.0
23 Feb 200 food - - N Jimm's Buffet 30.25
23 Mar 2000 - inco - Y Boss Man 2001.0
23 Mar 200 food - - Y Jimm's Buffet 30.25
23 Apr 2000 - inco - Y Boss Man 2001.0
23 Apr 200 food - - N Jimm's Buffet 30.25
23 May 2000 - inco - Y Boss Man 2001.0
23 May 200 food - - Y Jimm's Buffet 30.25
23 Jun 2000 - inco - Y Boss Man 2001.0
23 Jun 200 food - - Y Jimm's Buffet 30.25
23 Jul 2000 - inco - Y Boss Man 2001.0
23 Jul 200 food - - Y Jimm's Buffet 30.25
23 Aug 2000 - inco - Y Boss Man 2001.0
23 Aug 200 food - - Y Jimm's Buffet 30.25
23 Sep 2000 - inco - N Boss Man 2001.0
23 Sep 200 food - - Y Jimm's Buffet 30.25
23 Oct 2000 - inco - Y Boss Man 2001.0
23 Oct 200 food - - Y Jimm's Buffet 30.25
23 Nov 2000 - inco - Y Boss Man 2001.0
23 Nov 200 food - - Y Jimm's Buffet 30.25
23 Dec 2000 - inco - Y Boss Man 2001.0
23 Dec 200 food - - Y Jimm's Buffet 30.25
麻烦各位帮忙试试 到底怎么回事