亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 4059 | 回復: 6
打印 上一主題 下一主題

[文本處理] 請教下awk中遍歷匹配到的所有字符串的問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-10-24 15:44 |只看該作者 |倒序瀏覽
今天看awk實例(3)的時候看到這么一段:
match() 函數(shù)將返回匹配的起始位置,如果沒有找到匹配,則返回 0。此外,match() 還將設置兩個變量,叫作 RSTART 和 RLENGTH。RSTART 包含返回值(第一個匹配的位置),RLENGTH 指定它占據(jù)的字符跨度(如果沒有找到匹配,則返回 -1)。通過使用 RSTART、RLENGTH、substr() 和一個小循環(huán),可以輕松地迭代字符串中的每個匹配。

然后我細細想了想,又搜了搜,怎么完成它,發(fā)現(xiàn)自己迷糊了。
所以來請教下。

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設計版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
2 [報告]
發(fā)表于 2012-10-24 16:23 |只看該作者
藉由 sub()與 match()的搭配使用,可逐次取出原字串中合乎
指定條件的所有子字串.

例如執(zhí)行下列程式:
  1. awk '
  2.          BEGIN {
  3.                data = "p12-P34 P56-p61"
  4.               while( match( data ,/[0-9]+/) >0) {
  5.                  print substr(data,{ RSTART, RLENGTH })
  6.                  sub(/[0-9]+/,"")
  7.                  }
  8.               }
  9.           ' $*  }
復制代碼
結果印出 :
                12
                34
                56
                61

http://phi.sinica.edu.tw/tyuan/o ... 94011/append_c.html

論壇徽章:
0
3 [報告]
發(fā)表于 2012-10-24 16:30 |只看該作者
原來如此,是用sub替換掉了第一個匹配項,這樣第二個就變成了第一個了。一直受到了文中描述的干擾,沒想到sub函數(shù)。所以一直覺得少點什么,犯糊涂。謝謝。另外你給的最后一個鏈接,上去后,有些是亂碼。回復 2# waker


   

論壇徽章:
0
4 [報告]
發(fā)表于 2012-10-24 16:45 |只看該作者
我按照這個思路自己寫了下跑跑,打印了一個死循環(huán)。
  1. awk '
  2. BEGIN {
  3.     data="p12-P34 P56-p61"
  4.     while(match(data, /[0-9]+/)){
  5.         print substr(data, RSTART, RLENGTH)
  6.         sub(/[0-9]+/, "")
  7.     }
  8. }
  9. '   
復制代碼
全部打印12.然后我將你的代碼復制進去,調(diào)整好格式后,提示data,{ RSTART, RLENGTH })這里語法錯誤。
回復 2# waker


   

論壇徽章:
0
5 [報告]
發(fā)表于 2012-10-24 16:56 |只看該作者
原來是sub函數(shù)中,少了data參數(shù)。替換的時候,找不到對象了。回復 2# waker


   

論壇徽章:
8
雙子座
日期:2013-08-31 07:37:12金牛座
日期:2013-09-09 18:49:12處女座
日期:2013-09-23 11:43:14處女座
日期:2013-10-09 19:48:21獅子座
日期:2014-03-24 18:22:12丑牛
日期:2014-04-22 22:07:51申猴
日期:2014-06-12 21:54:13雙魚座
日期:2014-06-13 21:52:31
6 [報告]
發(fā)表于 2012-10-25 11:22 |只看該作者
突然對你的簽名很有興趣,GNU {bash 2.05b, grep 2.5, Awk 3.1.3, sed 4.0.8},bash,grep,awk,sed的版本難道說是最穩(wěn)定的?
回復 2# waker


   

論壇徽章:
0
7 [報告]
發(fā)表于 2012-10-25 11:33 |只看該作者
之前看到他的簽名的時候,我就在我的linux中測試了下,除了bash的版本,別的基本一致。回復 6# kernel69


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP