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

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

Chinaunix

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

如何提高SHELL處理大文本時(shí)的效率 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-01-12 12:21 |只看該作者 |倒序?yàn)g覽
最近在弄一個(gè)SHELL,其功能是對(duì)INPUT的文件(CSV)進(jìn)行格式檢查,如空值檢查,格式檢查(如判斷日期,時(shí)間的格式是否合法)等.處理完畢后再將處理結(jié)果寫到日志中.

現(xiàn)在遇到一個(gè)問題,就是SHELL運(yùn)行效率非常低下,處理10000行的數(shù)據(jù),得花40多分鐘.不曉得大家有何招數(shù)提高效率?

對(duì)于這個(gè)SHELL,我覺得有幾個(gè)點(diǎn)可能會(huì)提高效率,但不曉得如何實(shí)現(xiàn):

1,此SHELL中涉及到一個(gè)配置文件,此文件定義了對(duì)哪些列作何種類型的CHECK,現(xiàn)在的程序是每讀一行INPUT的數(shù)據(jù),都要讀一次這個(gè)配置文件. 能否一次性的將此文件讀入內(nèi)存,以后直接從內(nèi)存里讀取?

2,此SHELL中寫日志時(shí),是發(fā)現(xiàn)一個(gè)問題寫一次日志. 我想問的是,能否將日志先緩存一下,待到積累到一定數(shù)量時(shí)才物理的寫磁盤?

3,此SHELL基本上是用純SHELL語法實(shí)現(xiàn)的,中間夾雜了一些AWK. 我想問的是,對(duì)于大文本數(shù)據(jù)的處理,用什么工具效率會(huì)比較高?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-01-12 12:31 |只看該作者
把input文件樣本貼出來,格式是如何檢查的說明一下

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-01-12 12:31 |只看該作者
1,此SHELL中涉及到一個(gè)配置文件,此文件定義了對(duì)哪些列作何種類型的CHECK,現(xiàn)在的程序是每讀一行INPUT的數(shù)據(jù),都要讀一次這個(gè)配置文件. 能否一次性的將此文件讀入內(nèi)存,以后直接從內(nèi)存里讀取?
所謂讀入內(nèi)存, shell中無非是兩種方法: 1. 存入變量(這實(shí)際是廢話, 所有放入內(nèi)存的東西本質(zhì)上都是存放在變量中)

如: config_items=$(<config_file)

第二種方法: 使用 pipeline:

如: cat config_file | cmd1 | cmd2

2,此SHELL中寫日志時(shí),是發(fā)現(xiàn)一個(gè)問題寫一次日志. 我想問的是,能否將日志先緩存一下,待到積累到一定數(shù)量時(shí)才物理的寫磁盤?

同上, 所謂緩存, 就是將結(jié)果現(xiàn)存放在某個(gè)shell變量中

3,此SHELL基本上是用純SHELL語法實(shí)現(xiàn)的,中間夾雜了一些AWK. 我想問的是,對(duì)于大文本數(shù)據(jù)的處理,用什么工具效率會(huì)比較高?

用什么工具取決于要做的操作 ..如果可能, 盡量用 grep -xF -f ..,來實(shí)現(xiàn)搜索

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-03-03 21:51 |只看該作者
蘭州呢?冒個(gè)泡哈

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀(jì)念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役紀(jì)念章
日期:2022-04-24 14:33:24
5 [報(bào)告]
發(fā)表于 2010-03-03 22:04 |只看該作者
CSV文件、配置文件、shell腳本全部貼出來看看

論壇徽章:
1
巨蟹座
日期:2014-06-04 13:33:30
6 [報(bào)告]
發(fā)表于 2010-03-03 22:56 |只看該作者
sed awk就擅長(zhǎng)文本處理,還慢的話那有什么能更快的
源文件給出來看看

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-03-04 05:48 |只看該作者
估計(jì)LZ不是用SED AWK做的
可能是循環(huán)什么的吧

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-03-04 08:37 |只看該作者
不用想,肯定是lz代碼寫得有問題。

論壇徽章:
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程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報(bào)曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
9 [報(bào)告]
發(fā)表于 2010-03-04 08:50 |只看該作者
不會(huì)是把數(shù)據(jù)文件open/close了10000+次吧

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-03-04 11:04 |只看該作者
純awk腳本處理6G日志,總共3300萬行記錄,不到6分鐘。
您需要登錄后才可以回帖 登錄 | 注冊(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ū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP