Chinaunix

标题: 急:solaris2.8下awk和gnu 下的awk执行结果不一样? [打印本页]

作者: zhangpiwang    时间: 2005-04-07 20:43
标题: 急:solaris2.8下awk和gnu 下的awk执行结果不一样?
####################################
solaris2.8下awk和gnu 下的awk执行结果不一样,为什么?
问:awk如何将数据每两个空行做为分隔,然后处理分隔后的信息块。
原始数据文件如下:
$ more t.txt
* ALARM 111111111
abcde


CLR ALARM 222222222
3333333333


444444444
555555555


**  ALARM666666666
777777777
888888888


     ALARM999999999
脚本如下:
  1. $ more cu2.sh
  2. input=$1
  3. awk 'BEGIN{RS="\n\n\n";FS="\n";OFS="\t"}{$1=$1;print $0 }' $input|awk '/ALARM/'| grep -v '^CLR'
复制代码

在solaris2.8或者2.5版本运行得到以下结果:
$ cu2.sh t.txt
* ALARM 111111111
**  ALARM666666666
     ALARM999999999
$


在gnu下的awk(其他的linux也是!)如下:
$ cu2.sh t.txt
* ALARM 111111111       abcde
**  ALARM666666666      777777777       888888888
     ALARM999999999

q3283c@tools-test2 /cygdrive/c/temp/shell
$


请教各位大侠,怎么能改成gnu那样的输出结果那。两个程序都没有错误,但是sun的结果不对。AAAAAAAAAAAAAAAAAAA




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2