|

楼主 |
发表于 2009-9-3 14:24:22
|
显示全部楼层
Post by lastart;2021077
没看清楚,不好意思,"\r"是你的第一个问题,你原来的写法没错,只是文件有回车所以显示不对。
关于第二个问题这跟awk的处理方式有关,他是读一行处理一行。所以所有结果都叠在一起了。解决办法是最后再输出。
awk -F: '/Savage/{sav[$0]=$1" "$2};/Chet/{che[$0]=$1" "$3" "$4" "$5}; $3==250{s250[$0]=$1} END{print "Savage:";for(a in sav)print sav[a];print "Chet:"; for (a in che) print che[a];print "250:"; for (a in s250) print s250[a];}' lab3.data
非常感谢,用这个方法问题解决了。。不过for语句有些不明白,正在肯书中。。
谢谢了!!
[root@em ~]# awk -F: -f awk3 lab3.data
Tom Savage (408) 926-3456
Jody Savage (206) 548-1278
Dan Savage (406) 298-7744
Chet Main 50 95 135
Archie McNichol
Nancy McNeil
Mike Harrington
Tom Savage
Guy Quigley
John Goldenrod
Susan Dalsass |
|