免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123下一頁
最近訪問板塊 發新帖
查看: 70406 | 回復: 28
打印 上一主題 下一主題

想不到題目這么難 改變一下需求 [復制鏈接]

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
跳轉到指定樓層
1 [收藏(0)] [報告]
發表于 2017-07-01 15:27 |只看該作者 |倒序瀏覽
本帖最后由 Windows19 于 2017-07-01 15:40 編輯

想不到題目這么難  改變一下需求
實在不敢到c++版去了  那里實在太荒涼了  那里環境恐怖  陰森森的   還經常有熊出沒

還是perl  shell 版塊和諧   而且版主也很有精神  實在應該要贊一下人家了了

進入正題了
100g  log  效率  性能

a.txt
4gfgdg\[8654
45345btgtfdfddgggd
/[][ry4353453466434534rtyt/yr'
234235346465'/\.h\'rt;'uy6r\'y7;
gfgdg9687110575448
btgtfdfddgggd\';btgtfdfddgggd
4353453466434534.,/'4353453466434534/'ryrtytryrtlyphft''/
btgtfdfddgggd\';btgtfdfddgggd8654

'\kji']\;\lknokjp8
8u90ulknouh07kno078onk
/[][ry4353453466434534789rtyt/yr'
4gfgdgab\[8654243
已經有1個B文本  需要把這些有關鍵字行取出來  而b文件大小僅5m左右  沒有關鍵字的可以不輸出

精確匹配b文本中關鍵字     后輸出          代碼改為精確匹配b文本中字母時  應區分大小寫

例如b.txt    全是數字串

4353453466434534
234235346465
8654
9687110575448
6789679869797897897879


示例中顏色匹配關鍵子
大概應得結果,  log.txt

/[][ry4353453466434534rtyt/yr'
gfgdg9687110575448
4353453466434534.,/'4353453466434534/'ryrtytryrtlyphft''/
btgtfdfddgggd\';btgtfdfddgggd8654



用這個出來結果很正確  但很氣內存   搞不動100g
awk 'BEGIN{FPAT="[0-9]+"}NR==FNR{a[$1]=1;next}NF{f=1;for(i=1;i<=NF;i++)f=f&&a[$i];if(f)print}'


謝謝...



論壇徽章:
12
子鼠
日期:2014-10-11 16:46:482016科比退役紀念章
日期:2018-03-16 10:24:0515-16賽季CBA聯賽之山東
日期:2017-11-10 14:32:142016科比退役紀念章
日期:2017-09-02 15:42:4715-16賽季CBA聯賽之佛山
日期:2017-08-28 17:11:5515-16賽季CBA聯賽之浙江
日期:2017-08-24 16:55:1715-16賽季CBA聯賽之青島
日期:2017-08-17 19:55:2415-16賽季CBA聯賽之天津
日期:2017-06-29 10:34:4315-16賽季CBA聯賽之四川
日期:2017-05-16 16:38:55黑曼巴
日期:2016-07-19 15:03:112015亞冠之薩濟拖拉機
日期:2015-05-22 11:38:5315-16賽季CBA聯賽之北京
日期:2019-08-13 17:30:53
2 [報告]
發表于 2017-07-01 19:34 |只看該作者
你能想到的任何用幾句命令實現的,都是爆內存。
還有你的問題原來是怎樣的就是怎樣的,不要把問題簡化,因為簡化版的實現和復雜版的實現相去甚遠,到頭來還要從頭開始 —— 差之毫厘,謬以千里。

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
3 [報告]
發表于 2017-07-01 20:30 |只看該作者
回復 2# 523066680

原來那個太復雜了   很難做得出來   但是你卻寫出來了  結果正確
而且你思路更靈活   比我考慮的還要全  你確實是一個解決問題能手
想犧牲一下需求  出來結果無須按順序排了   沒辦法  只能改變需求了   


盼望這里前輩老師能寫出來了

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
4 [報告]
發表于 2017-07-01 20:36 來自手機 |只看該作者
本帖最后由 Windows19 于 2017-07-01 20:37 編輯

如果上面需求能在1-2小時能完成,實在已經很滿意了,

當然3小時左右也行

論壇徽章:
12
子鼠
日期:2014-10-11 16:46:482016科比退役紀念章
日期:2018-03-16 10:24:0515-16賽季CBA聯賽之山東
日期:2017-11-10 14:32:142016科比退役紀念章
日期:2017-09-02 15:42:4715-16賽季CBA聯賽之佛山
日期:2017-08-28 17:11:5515-16賽季CBA聯賽之浙江
日期:2017-08-24 16:55:1715-16賽季CBA聯賽之青島
日期:2017-08-17 19:55:2415-16賽季CBA聯賽之天津
日期:2017-06-29 10:34:4315-16賽季CBA聯賽之四川
日期:2017-05-16 16:38:55黑曼巴
日期:2016-07-19 15:03:112015亞冠之薩濟拖拉機
日期:2015-05-22 11:38:5315-16賽季CBA聯賽之北京
日期:2019-08-13 17:30:53
5 [報告]
發表于 2017-07-01 21:36 |只看該作者
你現在這個需求就簡單多了。特別是B.txt 如果確實只有5M。那么A.txt 大點無所謂。
我還在想上次那個問題怎么優化。這個問題略過

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
6 [報告]
發表于 2017-07-01 21:53 來自手機 |只看該作者
523066680 發表于 2017-07-01 21:36
你現在這個需求就簡單多了。特別是B.txt 如果確實只有5M。那么A.txt 大點無所謂。
我還在想上次那個問題怎 ...

確實B文件5m左右

上次那個問題太復雜了  
能優化效率固然你是最好,而且能寫出比c++更厲害

我突然想到上次那個問題可以這樣優化
從每一行中,取重復率最高1個字母串,和最高1個數字串(每行都是取這2種類型)  這樣不用對比每一列了,估計效率也就提高很多

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
7 [報告]
發表于 2017-07-01 22:57 來自手機 |只看該作者
523066680 發表于 2017-07-01 21:36
你現在這個需求就簡單多了。特別是B.txt 如果確實只有5M。那么A.txt 大點無所謂。
我還在想上次那個問題怎 ...

相信你是可以  也看到老師你將Perl寫得精僻

現在大家都知道了這個題目,各路前輩大神關注度也非常高,

論壇徽章:
145
技術圖書徽章
日期: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技術圖書徽章
日期: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 [報告]
發表于 2017-07-02 14:13 |只看該作者
$ awk -f get_engnum.awk b.txt a.txt
4gfgdg\[8654
/[][ry4353453466434534rtyt/yr'
234235346465'/\.h\'rt;'uy6r\'y7;
gfgdg9687110575448
4353453466434534.,/'4353453466434534/'ryrtytryrtlyphft''/
btgtfdfddgggd\';btgtfdfddgggd8654

評分

參與人數 1信譽積分 +10 收起 理由
Windows19 + 10 謝謝前輩一直幫助

查看全部評分

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
9 [報告]
發表于 2017-07-02 14:53 |只看該作者
回復 8# jason680
不知道為啥  我這邊返回這個信息
$ awk -f get_engnum.awk b.txt a.txt >0
awk: fatal: can't open source file `get_engnum.awk' for reading (No such file or directory)

論壇徽章:
22
2015年亞洲杯之科威特
日期:2015-04-18 15:27:07每日論壇發貼之星
日期:2016-01-27 06:20:0015-16賽季CBA聯賽之廣夏
日期:2016-03-28 16:20:51程序設計版塊每日發帖之星
日期:2016-04-09 06:20:00CU十四周年紀念徽章
日期:2016-05-03 09:35:1415-16賽季CBA聯賽之天津
日期:2016-11-18 08:31:3115-16賽季CBA聯賽之山西
日期:2016-12-07 16:29:5315-16賽季CBA聯賽之八一
日期:2017-01-10 11:34:3415-16賽季CBA聯賽之吉林
日期:2017-03-30 22:51:1915-16賽季CBA聯賽之廣夏
日期:2017-04-13 20:51:52程序設計版塊每日發帖之星
日期:2016-01-27 06:20:00每日論壇發貼之星
日期:2015-12-28 06:20:00
10 [報告]
發表于 2017-07-02 15:51 |只看該作者
jason680 發表于 2017-07-02 14:13
$ awk -f get_engnum.awk b.txt a.txt
4gfgdg\[8654
/[][ry4353453466434534rtyt/yr'

沒見過這樣寫法呀                  
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則 發表回復

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP
   日韩综合区视频第一页导航,无码JK粉嫩小泬在线观看,午夜精品A片一区二区三区,日日躁夜夜躁狠狠躁麻豆,大胆国模,免费观看无遮挡www的网站