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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問板塊 發(fā)新帖
查看: 4681 | 回復(fù): 18
打印 上一主題 下一主題

[文本處理] 求助怎么實(shí)現(xiàn)這樣的功能 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-06-27 13:06 |只看該作者 |倒序?yàn)g覽
數(shù)據(jù)處理,有上萬(wàn)行的數(shù)據(jù),結(jié)構(gòu)是這樣的:  
a1
...
...
mark
b11 b12
b21 b22  
b31 b32
b41 b42
...
... ------
...
a2
...
...
mark
...
...
-----
現(xiàn)在要求的是數(shù)據(jù)a在下面的b數(shù)據(jù)的第一列里面的范圍, bn<a<bn+1,怎么用腳本實(shí)現(xiàn)呢?現(xiàn)在的問題是怎么把a(bǔ)作為一個(gè)變量讀進(jìn)來(lái)傳遞給后面的腳本,并且是一連串的數(shù)據(jù)。我現(xiàn)在能想到的笨辦法就是分割文件然后一個(gè)文件一個(gè)文件分別處理,但是這樣的文件有上萬(wàn)個(gè),實(shí)在是太。。。

另外,這個(gè)if語(yǔ)句無(wú)法傳遞變量a,怎么修改才可以呢?awk '/first/ {a1=$3} /mark/,/----/ {a[NR]=$1}END{for(i=2;i<=NR;i++){if(a<a && a[i+1]>a) print a}}'



謝謝大家了,困擾兩天了沒有解決這個(gè)問題。。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2014-06-27 13:49 |只看該作者
樓主你要這么寫,咱就沒得嘮了,
...
a2
...
a2根本就是毫無(wú)特殊性的一行,憑什么就取它的值?你awk里那/first/又是哪里蹦出來(lái)的?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-06-27 13:59 |只看該作者
用戶名注冊(cè)后不能更改 發(fā)表于 2014-06-27 13:49
樓主你要這么寫,咱就沒得嘮了,
...
a2
嗯,我錯(cuò)了,有標(biāo)志的,可以匹配出來(lái): first  a1
...
...
mark
b11 b12
b21 b22  
b31 b32
b41 b42
...
... ------
...
first a2
...
...
mark
...
...
-----

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-06-27 14:17 |只看該作者
i是discuz斜體的關(guān)鍵字,直接寫會(huì)造成顯示異常,放到code中就好了。大概是這樣
  1. awk '/first/ {a1=$3} /mark/,/----/ {a[NR]=$1}END{for(i=2;i<=NR;i++){if(a<a[i] && a[i+1]>a) print a[i]}}'
復(fù)制代碼
不知道為什么前面a1后面a。

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2014-06-27 15:00 |只看該作者
用戶名注冊(cè)后不能更改 發(fā)表于 2014-06-27 14:17
i是discuz斜體的關(guān)鍵字,直接寫會(huì)造成顯示異常,放到code中就好了。大概是這樣不知道為什么前面a1后面a。


每個(gè)a是不同的,這樣有可能用一個(gè)語(yǔ)句讀進(jìn)來(lái)處理么?
我嘗試用兩個(gè)數(shù)組,一個(gè)存儲(chǔ)a,另一個(gè)存儲(chǔ)b,但是好像這樣不能判斷,因?yàn)閎是分塊的。。
awk '/first/ {a[i++]=$3} /mark/{p=1;next}/---/{p=0}p {b[j++]=$2}END {for(k=0;k<NR;k++) if(b[k]...???

論壇徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉雞
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥豬
日期:2014-04-22 16:13:09獅子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53處女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
6 [報(bào)告]
發(fā)表于 2014-06-27 15:04 |只看該作者
回復(fù) 1# zsjan

沒看懂需求。。。
  1. a1
  2. ...
  3. ...
  4. mark
  5. b11 b12
  6. b21 b22  
  7. b31 b32
  8. b41 b42
  9. ...
  10. ... ------
  11. ...
  12. a2
  13. ...
  14. ...
  15. mark
  16. ...
  17. ...
  18. -----
復(fù)制代碼
期望的結(jié)果是什么?
   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-06-27 15:12 |只看該作者
Herowinter 發(fā)表于 2014-06-27 15:04
回復(fù) 1# zsjan

沒看懂需求。。。期望的結(jié)果是什么?


呃,我把數(shù)據(jù)貼一部分吧:

first :   5.7869     0.48 0.2399


  mark
        -25.1560      2.00000
        -25.0447      2.00000
        -25.0446      2.00000
。。。
-------------------------------

  first : 4.28 3.98 5.88


  mark
         -25.1560      2.00000
        -25.0447      2.00000
        -25.0446      2.00000
。。。
--------------------------------
文件是這樣重復(fù)的,我要計(jì)算的是5.7869在下面的第一列-25.1560中的位置,每一組數(shù)據(jù)都計(jì)算一次,不知道這次說(shuō)明白沒有?

論壇徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉雞
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥豬
日期:2014-04-22 16:13:09獅子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53處女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
8 [報(bào)告]
發(fā)表于 2014-06-27 15:31 |只看該作者
本帖最后由 Herowinter 于 2014-06-27 15:33 編輯

回復(fù) 7# zsjan

幾個(gè)細(xì)節(jié)請(qǐng)確認(rèn)。
1. 對(duì)于某個(gè)數(shù)字,只可能有1個(gè)匹配還是有可能有多個(gè)?
比如你要找的這個(gè)5.7869 后面可不可能有多個(gè),如果有
多個(gè),返回所有符合的行?返回第一個(gè)?
2.你要的結(jié)果是匹配的行在當(dāng)前文件中的行號(hào)?如果該數(shù)字
在后面的文本中沒找到返回什么?
   

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2014-06-27 15:37 |只看該作者
回復(fù) 5# zsjan

怪我了,忘了你這判斷是寫END里了,寫前面。

論壇徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉雞
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥豬
日期:2014-04-22 16:13:09獅子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53處女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
10 [報(bào)告]
發(fā)表于 2014-06-27 15:38 |只看該作者
本帖最后由 Herowinter 于 2014-06-27 15:42 編輯

回復(fù) 7# zsjan
大概這樣的,可能有點(diǎn)出入。
  1. awk '/^[[:space:]]*first/{n=$3;found=0;print "Block "++k": "n;next} /^-+$/{if(!found)print "no matching records";next} $1==n{found=1;print NR": "$0}' i
  2. Block 1: 5.7869
  3. 8:          5.7869       2.12345
  4. Block 2: 4.28
  5. no matching records
復(fù)制代碼
cat i

  1. first :   5.7869     0.48 0.2399


  2.   mark
  3.         -25.1560      2.00000
  4.         -25.0447      2.00000
  5.         -25.0446      2.00000
  6.          5.7869       2.12345
  7.          0.008        5.7869
  8. ...
  9. -------------------------------

  10.   first : 4.28 3.98 5.88


  11.   mark
  12.          -25.1560      2.00000
  13.          -25.0447      2.00000
  14.          -25.0446      2.00000
  15. ...
  16. --------------------------------
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP