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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: yestreenstars
打印 上一主題 下一主題

[文本處理] 練習(xí)題(排序合并) [復(fù)制鏈接]

論壇徽章:
2
水瓶座
日期:2014-08-20 14:38:50辰龍
日期:2014-09-15 15:49:06
51 [報告]
發(fā)表于 2014-09-10 11:43 |只看該作者
學(xué)習(xí)學(xué)習(xí)。。。。。。。。。

論壇徽章:
3
天秤座
日期:2013-12-19 06:33:48IT運維版塊每日發(fā)帖之星
日期:2016-07-29 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-08-13 06:20:00
52 [報告]
發(fā)表于 2015-05-13 15:11 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽

論壇徽章:
0
53 [報告]
發(fā)表于 2015-05-13 15:28 |只看該作者
看看思路。復(fù)雜的shell還是搞不定

論壇徽章:
0
54 [報告]
發(fā)表于 2015-05-13 16:42 |只看該作者
本帖最后由 yaoliwei 于 2015-05-13 17:20 編輯

不太對

  1. bash-3.2$ awk 'function printarr(fruit,array){printf fruit":\t";tn=asorti(array);for (i=0;i<tn;i++)printf array[i]" ";print}/pear/{p[$2]}/apple/{a[$2]}END{printarr("apple",a);printarr("pear",p)}' file1
  2. apple:   cat106 cat107 cat108 cat109 cat12 cat123
  3. pear:    dog101 dog103 dog104 dog105 dog11 mouse106 mouse107 mouse108 mouse109 mouse123
  4. bash-3.2$
復(fù)制代碼

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
55 [報告]
發(fā)表于 2015-05-14 16:17 |只看該作者
研究答案。。。。。。。。。。。。。。。。。。。

論壇徽章:
28
15-16賽季CBA聯(lián)賽之八一
日期:2016-02-22 19:10:4215-16賽季CBA聯(lián)賽之深圳
日期:2016-12-01 10:34:0415-16賽季CBA聯(lián)賽之新疆
日期:2016-12-07 10:24:2915-16賽季CBA聯(lián)賽之同曦
日期:2016-12-15 12:06:43CU十四周年紀念徽章
日期:2016-12-18 13:03:4415-16賽季CBA聯(lián)賽之吉林
日期:2017-01-03 15:52:2515-16賽季CBA聯(lián)賽之遼寧
日期:2017-01-04 14:58:2415-16賽季CBA聯(lián)賽之遼寧
日期:2017-01-15 09:42:512016科比退役紀念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16賽季CBA聯(lián)賽之上海
日期:2017-03-18 10:14:5415-16賽季CBA聯(lián)賽之青島
日期:2017-03-18 22:00:44
56 [報告]
發(fā)表于 2015-05-15 00:28 |只看該作者
回復(fù) 1# yestreenstars
python 版:
  1. #!/usr/bin/env python
  2. #encoding:utf-8

  3. import itertools
  4. import operator

  5. def getDataFromFile(filepath):
  6.     with open(filepath) as f:
  7.         for line in f:
  8.             col = line.strip().split()
  9.             yield (col[0],col[1])


  10. def getRanges(li):
  11.     if type(li[0]) == str:
  12.         li = map(int,li)
  13.     pos = [j -i for i,j in enumerate(li)]
  14.     t = 0
  15.     for k,gr in itertools.groupby(pos):
  16.         l = len(list(gr))
  17.         st_pos = li[t]
  18.         t += l
  19.         yield range(st_pos,st_pos + l)


  20. def getValueList(li):
  21.     ret = []

  22.     for k,gr in itertools.groupby(sorted(li),operator.itemgetter(0)):
  23.         g = list(gr)
  24.         values = [x[1] for x in g]
  25.         for x in getRanges(values):
  26.             if len(x)>1:
  27.                 ret.append(k+str(x[0])+"-"+str(x[-1]))
  28.             else:
  29.                 ret.append(k+str(x[0]))

  30.     return ret



  31. def getGroupbyWorld(li):
  32.     import re
  33.     for x in li:
  34.         yield re.findall(r'(\D+)(\d+)',x)[0]



  35. if __name__ == '__main__':
  36.     data = [x for x in getDataFromFile('1.txt')]
  37.     data.sort(key=operator.itemgetter(0))

  38.     import re

  39.     for k,gr in itertools.groupby(data,key=operator.itemgetter(0)):
  40.         g = list(gr)
  41.         values = [x[1] for x in g]
  42.         li = list(getGroupbyWorld(values))
  43.         print k+': '+','.join(sorted(getValueList(li),key=lambda x:int(re.match(r'\D+(\d+)',x).group(1))))
復(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
57 [報告]
發(fā)表于 2015-05-15 11:11 |只看該作者

awk only

$ awk 'function p(v){if(s=="-")printf("%s%s",s,D2 D3);printf("%s",v);D1=d[1];D2=d[2];D3=d[3]}{match($2,/([^0-9]+)([0-9]+)/,d);a[sprintf("%-15s%-15s%9d",$1,d[1],d[2])]=$0}END{t=asorti(a,b);for(n=1;n<=t;n++){split(b[n],d," +");if(d[1]!=D1){p(N d[1]": "d[2]d[3]);N="\n";s=",";continue};if(d[2]!=D2){p(","d[2]d[3]);continue};if(d[3]==D3+1){s="-";D3=d[3]}else{p(","d[2]d[3]);s=","}}}END{p("\n")}' FILE
apple: cat12,cat106-cat109,cat123,cat125
pear: dog11,dog101,dog103-dog105,mouse106-mouse109,mouse123,mouse125

論壇徽章:
22
處女座
日期:2014-10-11 13:33:292015亞冠之塔什干火車頭
日期:2015-07-20 19:59:042015亞冠之塔什干火車頭
日期:2015-07-26 10:59:31程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-05 06:20:00每日論壇發(fā)貼之星
日期:2015-08-05 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-07 06:20:00每日論壇發(fā)貼之星
日期:2015-08-07 06:20:002015亞冠之阿爾納斯爾
日期:2015-10-01 15:23:28白銀圣斗士
日期:2015-12-07 17:17:06操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-12-27 06:20:002015亞冠之廣州富力
日期:2015-07-08 15:48:31程序設(shè)計版塊每日發(fā)帖之星
日期:2015-06-11 22:20:00
58 [報告]
發(fā)表于 2015-05-15 23:02 |只看該作者
看一下答案。

論壇徽章:
0
59 [報告]
發(fā)表于 2015-05-18 08:40 |只看該作者
看一下看一下

論壇徽章:
0
60 [報告]
發(fā)表于 2015-05-18 13:38 |只看該作者

lxzkenney (UID: 23464606)  在嗎?

能詳細說一下你的 代碼的意思嗎?

------------------------------
sort demo.txt \
|sed -r ':1
N
s/^(\S+)\s+(.+)\n\1\s+(.+)$/\1\t\2,\3/
t1
P
D'

-------------------------------

我沒看明白啊?

-----------------說明-----------
我的意思是:
$ cat demo1|sort
apple   cat106
apple   cat107
apple   cat108
apple   cat109
apple   cat12
apple   cat123
apple   cat125
pear    dog101
pear    dog103
pear    dog104
pear    dog105
pear    dog11
pear    mouse106
pear    mouse107
pear    mouse108
pear    mouse109
pear    mouse123
pear    mouse125

是 怎么變成 下面的樣子的???
apple   cat106,cat107,cat108,cat109,cat12,cat123,cat125
pear    dog101,dog103,dog104,dog105,dog11,mouse106,mouse107,mouse108,mouse109,mouse123,mouse125


==============可能這不是 本題目的答案, 但是現(xiàn)實生活中, 經(jīng)常遇到要 分組的情況啊================
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP