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

  免費(fèi)注冊 查看新帖 |

Chinaunix

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

[awk] 設(shè)定匹配規(guī)則文件? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-07-28 11:41 |只看該作者 |倒序?yàn)g覽
有多個(gè)文件,含有如下語句,行有可能亂序

filenamexxx.txt
...
The clock shows "12:00:00"
The month is "Jan" and the day is "31"
The-location-is-Beijing-(China)                             
...

我想定義規(guī)則文件給 awk 運(yùn)行時(shí)候讀入
#keywords     IFS   fieldNo
#===================
clock               " "     $4
month            " "      $4
day                " "      $9
location         "-"      $4

想要達(dá)到的目的是,匹配 keywords, 用IFS分割此行,然后依次打引fieldNo所代表的字段

求讀入匹配文件的函數(shù)

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
2 [報(bào)告]
發(fā)表于 2011-07-28 12:04 |只看該作者
回復(fù) 1# iamkey9


    這樣行不?
  1. $ echo 'The clock shows "12:00:00"
  2. The month is "Jan" and the day is "31"
  3. The-location-is-Beijing-(China) ' |\
  4. awk -F'[" -]' '/clock|month/{print $2": "$5}/location/{print "day: "$4}/day/{print $2": "$(NF-1)}'
  5. clock: 12:00:00
  6. month: Jan
  7. month: 31
  8. day: Beijing
復(fù)制代碼

論壇徽章:
3
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34獅子座
日期:2014-03-27 15:44:382015年辭舊歲徽章
日期:2015-03-03 16:54:15
3 [報(bào)告]
發(fā)表于 2011-07-28 12:28 |只看該作者
大神在樓上

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2011-07-28 12:29 |只看該作者
回復(fù) 2# yinyuemi


    不知道他這個(gè)文件會不規(guī)則到什么程度,說不定下一條記錄里local又用引號day用-了....
   我覺得能生成這么不規(guī)則的文件也不容易啊

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
5 [報(bào)告]
發(fā)表于 2011-07-28 13:03 |只看該作者
回復(fù) 4# mpstat


    從lz的描述來看,我理解的是,只是行亂序,對于特定的行,格式應(yīng)該是固定的

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2011-07-28 13:27 |只看該作者
本帖最后由 iamkey9 于 2011-07-28 13:30 編輯

回復(fù) 5# yinyuemi


謝謝,其實(shí)我是想把AWK和規(guī)則文件分開,這樣以后看不懂AWK的人也可以改規(guī)則文件,另外,行格式是基本固定的(其實(shí)不固定也沒關(guān)系,添加新規(guī)則就可以了)

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
7 [報(bào)告]
發(fā)表于 2011-07-28 14:18 |只看該作者
回復(fù) 6# iamkey9
  1. head format.txt data
  2. ==> format.txt <==
  3. #keywords     IFS   fieldNo
  4. #===================
  5. clock               " "     4
  6. month            " "      4
  7. day                " "      9
  8. location         "-"      4

  9. ==> data <==
  10. The clock shows "12:00:00"
  11. The month is "Jan" and the day is "31"
  12. The-location-is-Beijing-(China)

  13. awk  'NR>2&&NR==FNR{a[gensub(/ /,"","g",$1)]=$2;b[gensub(/ /,"","g",$1)]=gensub(/ /,"","g",$3)}
  14. NR>FNR{if(/location/){t=a["location"];split($0,c,t);print c[2],": "c[b[c[2]]]};
  15. if(/month/){t=a["month"];l=split($0,c,t);print c[2],": "c[b[c[2]]] RS "day: "c[b["day"]]};
  16. if(/clock/){t=a["clock"];split($0,c,t);print c[2],": "c[b[c[2]]]};delete c}
  17. ' FS='"' format.txt  data
  18. clock : "12:00:00"
  19. month : "Jan"
  20. day: "31"
  21. location : Beijing
復(fù)制代碼

論壇徽章:
145
技術(shù)圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [報(bào)告]
發(fā)表于 2011-07-28 15:59 |只看該作者
有多個(gè)文件,含有如下語句,行有可能亂序

filenamexxx.txt
...
The clock shows "12:00:00"
The mont ...
iamkey9 發(fā)表于 2011-07-28 11:41



$ cat awk_rule
# keywords FieldNo IFS
#====================
clock 4 " "
month 4 " "
day   9 " "
location 4 "-"
test 2 "[=,]"
name 4 "[=,]"

$ cat f1.txt
...
The clock shows "12:00:00"
The month is "Jan" and the day is "31"
The-location-is-Beijing-(China)
test=123,name=John
...

$ awk 'FNR==NR{if(!/^[ \t]*#/){if(NF<3){print "error:"$0;exit}kw[n]=$1;no[n]=$2;s[n]=$3;if(NF>3){for(a=4;a<=NF;a++)s[n]=s[n]" "$a;}}s[n]=substr(s[n],2,length(s[n])-2);n++}NR>FNR{for(n in kw){if(match($0,kw[n])){split($0,m,s[n]);print kw[n]"="m[no[n]]}}}' awk_rule f1.txt
clock="12:00:00"
day="31"
month="Jan"
location=Beijing
test=123
name=John
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP