免费注册 查看新帖 |

Chinaunix

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

关于AWK gsub的输出显示问题!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-23 15:50 |只看该作者 |倒序浏览
关于AWK gsub的输出显示问题!!
我做了一个小程序,为什么AWK GSUB最后显示出来的东西只是那修改过的语句,而不是整篇文章啊,怎么样才能显示整个文章。很着急,在线等!!!!!!!!!!

论坛徽章:
0
2 [报告]
发表于 2007-11-23 15:52 |只看该作者
不懂你说的什么
呵呵
不过gensub和他用法差不多
你需要的是他吧

论坛徽章:
0
3 [报告]
发表于 2007-11-23 15:57 |只看该作者

回复 #2 nuclearxin 的帖子

原来有一个程序,里面有很多一样的语句
我用GREP 提取了这些语句,然后用AWK提取了这些语句中的一个日期,然后用GSUB把这个日期替换为另外一个日期,最后,显示出来的只是那些被修改了的语句,而不是原有的那段程序,

论坛徽章:
0
4 [报告]
发表于 2007-11-23 16:13 |只看该作者
gsub会更改原来的  他返回数字第一个匹配的数字
gensub不会更改原来的 他返回替换后的值

论坛徽章:
0
5 [报告]
发表于 2007-11-23 16:20 |只看该作者

回复 #4 nuclearxin 的帖子

gensub的用法和格式能说下麻?NUCLEARXIN

论坛徽章:
0
6 [报告]
发表于 2007-11-23 16:31 |只看该作者
...
你 man awk里面有介绍
gensub(r, s, h [, t])   Search the target string t for matches of the regular expression r.  If h is a string beginning with  g  or
                               G,  then replace all matches of r with s.  Otherwise, h is a number indicating which match of r to replace.
                               If t is not supplied, $0 is used instead.  Within the replacement text s, the sequence \n,  where  n  is  a
                               digit from 1 to 9, may be used to indicate just the text that matched the n’th parenthesized subexpression.
                               The sequence \0 represents the entire matched text, as does the character &.  Unlike sub() and gsub(),  the
                               modified string is returned as the result of the function, and the original target string is not changed.


和gsub用法几乎一样多了个h
c=gsub(/ 规则  /,"要替换的字符","要替换第几个匹配的(g全部替换)数字",位置$0,$几)
呵呵不改变原来的  
返回修改过的给c
最后print c就ok了

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2007-11-23 16:33 |只看该作者
是你其它行你没print吧?

论坛徽章:
0
8 [报告]
发表于 2007-11-23 16:33 |只看该作者
支持 () 引用 s/(..)..(..)../\\1 some \\2/g 呵呵gsub不支持  "//1  第一个(),//2 第二个()"



...
知道了 print的问题
呵呵
不是gensub的问题

[ 本帖最后由 nuclearxin 于 2007-11-23 16:36 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-11-23 16:42 |只看该作者

回复 #8 nuclearxin 的帖子

谢谢了!我先研究下!!

论坛徽章:
0
10 [报告]
发表于 2007-11-23 16:45 |只看该作者

回复 #8 nuclearxin 的帖子

awk: calling undefined function gensub
input record number 1, file *****
source line 1 of program << gensub(/20071122/,20 ... >>
什么意思啊,用了后出现这个语句!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP