免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1318 | 回复: 0
打印 上一主题 下一主题

急:solaris2.8下awk和gnu 下的awk执行结果不一样? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-07 20:43 |只看该作者 |倒序浏览
####################################
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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP