本帖最后由 jason680 于 2014-11-26 17:50 编辑
回复 7# super皮波
more data and experiment, you'll see what happen
$ cat urfile
1,11
a,a1
2,21
a,a2
3,3a
$ awk -F"," -vRS="" '{print "NR="NR",NF="NF",FS=\""FS"\"";for(n=1;n<=NF;n++)printf "$"n"=|"$n"|,";print""}' urfile
NR=1,NF=4,FS=","
$1=|1|,$2=|11|,$3=|a|,$4=|a1|,
NR=2,NF=4,FS=","
$1=|2|,$2=|21|,$3=|a|,$4=|a2|,
NR=3,NF=2,FS=","
$1=|3|,$2=|3a|,
# set RS by yourself and get the some issue on "\n" (new line)
$ awk -F"," -vRS="\n\n+" '{print "NR="NR",NF="NF",FS=\""FS"\"";for(n=1;n<=NF;n++)printf "$"n"=|"$n"|,";print""}' urfile
NR=1,NF=3,FS=","
$1=|1|,$2=|11
a|,$3=|a1|,
NR=2,NF=3,FS=","
$1=|2|,$2=|21
a|,$3=|a2|,
NR=3,NF=2,FS=","
$1=|3|,$2=|3a
|,
# you can add the "\n"(new line) in FS by yourself
$ awk -F"[,\n]" -vRS="\n\n+" '{print "NR="NR",NF="NF",FS=\""FS"\"";for(n=1;n<=NF;n++)printf "$"n"=|"$n"|,";print""}' urfile
NR=1,NF=4,FS="[,
]"
$1=|1|,$2=|11|,$3=|a|,$4=|a1|,
NR=2,NF=4,FS="[,
]"
$1=|2|,$2=|21|,$3=|a|,$4=|a2|,
NR=3,NF=3,FS="[,
]"
$1=|3|,$2=|3a|,$3=||,
Note: you need to check last item in last line
|