免费注册 查看新帖 |

Chinaunix

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

[系统管理] RS器官现象 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-02 16:12 |只看该作者 |倒序浏览
RS 以正则表达式作为行分隔符,同时设置变量RT为正则表达式实际匹配到的字符串
为了验证这个事实,我果断的敲起了键盘
但是结果如下

论坛徽章:
0
2 [报告]
发表于 2012-08-02 16:16 |只看该作者
本帖最后由 personball 于 2012-08-02 16:29 编辑

回复 1# 伤不起


    + need \
or use  --re-interval


貌似我这边没问题,gawk
  1. personball@vostro:~$echo '1ab2bc3cd4de5'|awk 'BEGIN{RS="[a-z]+"}{print $1,RS,RT}'
  2. 1 [a-z]+ ab
  3. 2 [a-z]+ bc
  4. 3 [a-z]+ cd
  5. 4 [a-z]+ de
  6. 5 [a-z]+
  7. personball@vostro:~$
复制代码
GNU Awk 3.1.8

论坛徽章:
0
3 [报告]
发表于 2012-08-02 16:26 |只看该作者
回复 1# 伤不起


    估计你装的是mawk
我试了下mawk
  1. personball@vostro:~$echo '1ab2bc3cd4de5'|mawk 'BEGIN{RS="[a-z]+"}{print $1,RS,RT}'
  2. 1 [a-z]+
  3. 2 [a-z]+
  4. 3 [a-z]+
  5. 4 [a-z]+
  6. 5 [a-z]+
  7. personball@vostro:~$echo '1ab2bc3cd4de5'|mawk 'BEGIN{RS="[a-z]\+"}{print $1,RS,RT}'
  8. 1ab2bc3cd4de5 [a-z]\+
  9. personball@vostro:~$echo '1ab2bc3cd4de5'|mawk --re-interval 'BEGIN{RS="[a-z]+"}{print $1,RS,RT}'
  10. mawk: not an option: --re-interval
复制代码

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
4 [报告]
发表于 2012-08-02 16:27 |只看该作者
不是gawk
正则表达式类型的RS和RT变量都是gawk的扩展;在兼容模式中,他们都不可用.

论坛徽章:
1
摩羯座
日期:2014-12-29 15:59:36
5 [报告]
发表于 2012-08-02 16:31 |只看该作者
好奇怪哈,难道是用了别名

论坛徽章:
0
6 [报告]
发表于 2012-08-02 16:41 |只看该作者
回复 3# personball


    我的版本确实是mawk,这区别大吗

论坛徽章:
0
7 [报告]
发表于 2012-08-02 16:43 |只看该作者
本帖最后由 personball 于 2012-08-02 16:44 编辑

回复 6# 伤不起


    大
我这边ubuntu12系统默认装的是mawk,后来我自己又去装了个gawk,gawk比mawk强大

论坛徽章:
0
8 [报告]
发表于 2012-08-02 16:49 |只看该作者
回复 7# personball


    那可移植性不是又受到了干扰,请问谁才是兼容性最好地呢?

论坛徽章:
0
9 [报告]
发表于 2012-08-02 16:51 |只看该作者
awk:a w k是一种程序语言,对文档资料的处理具有很强的功能。awk 名称是由它三个最初设计者的姓氏的第一个字母而命名的: Alfred V. Aho、Peter J. We i n b e rg e r、Brian W. Kernighan。
a w k最初在1 9 7 7年完成。1 9 8 5年发表了一个新版本的a w k,它的功能比旧版本增强了不少。a w k 能够用很短的程序对文档里的资料做修改、比较、提取、打印等处理。如果使用C 或P a s c a l 等语言编写程序完成上述的任务会十分不方便而且很花费时间,所写的程序也会很大。

nawk: 在 20 世纪 80 年代中期,对 AWK 语言进行了更新,并不同程度地使用一种称为 NAWK (New AWK) 的增强版本对其进行了替换。许多系统中仍然存在着旧的 AWK 解释器,但通常将其安装为 oawk (Old AWK) 命令,而 NAWK 解释器则安装为主要的 awk 命令,也可以使用 nawk 命令。Dr. Kernighan 仍然在对 NAWK 进行维护,与 GAWK 一样,它也是开放源代码的,并且可以免费获得。
gawk: 是 GNU Project 的 AWK 解释器的开放源代码实现。尽管早期的 GAWK 发行版是旧的 AWK 的替代程序,但不断地对其进行了更新,以包含 NAWK 的特性。
mawk:Mawk 是 AWK 编程语言的解释器。AWK 语言在多媒体数据文件以及文本的检索和处理,算法的原型设计和试验都有广泛的使用。Mawk带给awk新的概念,它实现了在《The AWK Programming Language》(Aho, Kernighan and Weinberger, The AWK Programming Language, Addison-Wesley Publishing, 1988.被认为是 AWK 手册。)中定义的 AWK 语言。Mawk 遵循 POSIX 1003.2 (草案 11.3)定义的 AWK 语言,包含了一些没有在AWK 手册中提到的特色,同时 mawk 提供一小部分扩展。

算是又明白点了,呵呵

论坛徽章:
0
10 [报告]
发表于 2012-08-02 16:52 |只看该作者
回复 8# 伤不起


    兼容性。。。
这个,那只能不用扩展的功能咯,具体去了解下各个版本的差异吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP