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

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

Chinaunix

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

[文本處理] 急,有詳細(xì)的說明,2個(gè)文本求和及合并的shell問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-04-15 01:41 |只看該作者 |倒序?yàn)g覽
假如有個(gè)學(xué)生表  第一列是學(xué)號(hào)  第二列是選課的名稱  第三列是考試的分?jǐn)?shù)
a.txt

11111        tom        30
11111        tom        80
22222        jerry        33
22222        jerry        57
33333     jerry        22

下面這個(gè)是  第一列是學(xué)號(hào)  第二列是選課的名稱  第三列是考試的總分
b.txt
11111        tom        100       
22222        jerry        100
33333         jerry        100
44444        merry        100


    由于數(shù)據(jù)量比較大所以希望的結(jié)果如下
結(jié)果一: 根據(jù)上面的a.txt 和b.txt 列出每個(gè)學(xué)生的最后加和,如果不在a.txt中就是0
11111        tom        100        110
22222        jerry        100        90
33333        jerry        100        22
44444        merry        100        0
結(jié)果二: 在結(jié)果1的基礎(chǔ)上找出考試加和大于總分的行。
11111        tom        100        110
結(jié)果三: 在結(jié)果1中找出 加和與總分小于等于10的行
22222        jerry        100        90

這個(gè)shell可以合并寫,也可以分開單獨(dú)分別寫 ,因?yàn)閿?shù)據(jù)量大,所以shell的效率要高

論壇徽章:
33
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-17 06:23:27操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-24 06:20:0015-16賽季CBA聯(lián)賽之天津
日期:2016-05-06 12:46:59
2 [報(bào)告]
發(fā)表于 2014-04-15 08:03 |只看該作者
樓主的需求其實(shí)很簡(jiǎn)單, 把學(xué)生的成績(jī)插入數(shù)據(jù)庫(kù), 然后, 你想要什么結(jié)果, 基本上是分分鐘的事.

論壇徽章:
32
處女座
日期:2013-11-20 23:41:20雙子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00處女座
日期:2014-07-22 17:30:47獅子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥豬
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58處女座
日期:2014-12-02 09:17:52程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
3 [報(bào)告]
發(fā)表于 2014-04-15 09:21 |只看該作者
  1. $ awk -vOFS='\t' '{t=$1"\t"$2}NR==FNR{a[t]+=$3;next}{b[t]+=$3}END{for(i in b)printf "%s\t%d\t%d\n",i,b[i],a[i];print "";for(i in a)if(a[i]>b[i])print i,b[i],a[i];print "";for(i in b)if((b[i]-a[i]>=0)&&(b[i]-a[i]<=10))printf "%s\t%d\t%d\n",i,b[i],a[i]}' a.txt b.txt
  2. 33333   jerry   100     22
  3. 44444   merry   100     0
  4. 22222   jerry   100     90
  5. 11111   tom     100     110

  6. 11111   tom     100     110

  7. 22222   jerry   100     90
復(fù)制代碼

論壇徽章:
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
4 [報(bào)告]
發(fā)表于 2014-04-15 09:45 |只看該作者
回復(fù) 2# q1208c
其實(shí)我也覺得是數(shù)據(jù)庫(kù)該管的事,
除非樓主有什么特別的原因。

   

論壇徽章:
6
處女座
日期:2014-04-02 16:07:17酉雞
日期:2014-04-14 10:09:22子鼠
日期:2014-04-17 11:57:30辰龍
日期:2014-09-01 17:14:08戌狗
日期:2014-10-28 12:25:54未羊
日期:2014-11-14 11:31:58
5 [報(bào)告]
發(fā)表于 2014-04-15 10:33 |只看該作者
結(jié)果1
  1. awk 'NR==FNR{a[$1" "$2]=$3;next}{b[$1" "$2]=b[$1" "$2]?b[$1" "$2]+$3:$3}END{for(i in a){s=b[i]?b[i]:0;print i" 100 "s}}' b.txt a.txt
復(fù)制代碼
結(jié)果2
  1. awk 'NR==FNR{a[$1" "$2]=$3;next}{b[$1" "$2]=b[$1" "$2]?b[$1" "$2]+$3:$3}END{for(i in a){s=b[i]?b[i]:0;print i" 100 "s}}' b.txt a.txt | awk '$4>100'
復(fù)制代碼
結(jié)果3
  1. awk 'NR==FNR{a[$1" "$2]=$3;next}{b[$1" "$2]=b[$1" "$2]?b[$1" "$2]+$3:$3}END{for(i in a){s=b[i]?b[i]:0;print i" 100 "s}}' b.txt a.txt | awk '$4<=100&&$4>=90'
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2014-04-15 11:35 |只看該作者
謝謝大家的提醒,但是我這里因?yàn)槌杀镜仍颍荒苡胹hell分析

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-04-15 11:36 |只看該作者
數(shù)據(jù)量比較大,每天可能有幾千萬或上億條數(shù)據(jù)進(jìn)行分析,所以定下來用shell了

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2014-04-15 11:47 |只看該作者
回復(fù) 3# yestreenstars

謝謝啊,這個(gè)太精煉了,還沒有看懂,我這個(gè)例子是用 '\t‘ 做分隔符的,你這個(gè)能不能對(duì)不通過的結(jié)果 拆成不同的shell 啊?

   

論壇徽章:
33
榮譽(yù)會(huì)員
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-17 06:23:27操作系統(tǒng)版塊每日發(fā)帖之星
日期:2016-04-18 06:20:00IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-04-24 06:20:0015-16賽季CBA聯(lián)賽之天津
日期:2016-05-06 12:46:59
9 [報(bào)告]
發(fā)表于 2014-04-15 15:25 |只看該作者
回復(fù) 7# wzl189189

這個(gè)級(jí)別的數(shù)據(jù)量, 必須是數(shù)據(jù)庫(kù).

shell 處理, 如果中間出錯(cuò), 你查都沒的查. 只能重頭來過.

我不是太明白, 數(shù)據(jù)庫(kù)要什么成本?
mysql 收你錢了?
   

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2014-04-15 18:05 |只看該作者
回復(fù) 5# rulebook

謝謝啊,不過有點(diǎn)問題,就是
01.awk 'NR==FNR{a[$1" "$2]=$3;next}{b[$1" "$2]=b[$1" "$2]?b[$1" "$2]+$33}END{for(i in a){s=b?b:0;print i" 100 "s}}' b.txt a.txt


    1、   print i" 100 "s   這個(gè)你是固定,不是取b.txt中的第三列的值,第三例的值會(huì)變化的  
   2、  結(jié)果的字段能否用'\t'  既制表符。
   
您需要登錄后才可以回帖 登錄 | 注冊(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)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP