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

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

Chinaunix

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

[文本處理] 排序處理文本 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-07-19 09:53 |只看該作者 |倒序?yàn)g覽
保持第一列的scaffold的先后順序不變,第二列在同一條scaffold的情況,按數(shù)字大小排序。
Ph_scaffold57_2 6002125
Ph_scaffold57_2 1826520
Ph_scaffold4    54818110
Ph_scaffold4    53507591
Ph_scaffold4    51550443
Ph_scaffold4    15513112
Ph_scaffold243  767655




結(jié)果是:
Ph_scaffold57_2 1826520
Ph_scaffold57_2 6002125
Ph_scaffold4    15513112
Ph_scaffold4    51550443
Ph_scaffold4    53507591
Ph_scaffold4    54818110
Ph_scaffold243  767655


awk 'NR>1&&i!=$1{for(j=0;j++<asorti(a,b)print i,b[j];delete a}{i=$1;a[$2]}' file <(echo)
[解析]
        一開始我以為是個蠻小的問題, sort應(yīng)該就可以解決, 不就是一個排序嘛. 后來發(fā)現(xiàn)sort無法在第一列相同且不改變先后順序的情況下針對第二列排序, sort要么連第一列都排序了, 這樣就打亂了原先的自然順序.
        既然原先考慮的方法不行, 就只有用awk了, 思路是分別針對每個相同的第一列進(jìn)行排序, 目的是為了不改變其自然順序, 把相同第一列的第二列的值放入數(shù)組a中, 當(dāng)發(fā)現(xiàn)第一列不相同時(shí), 就排序輸出, 清空數(shù)組a.


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

剛剛看zooyo版主這個貼子的時(shí)候想到有沒有其他方法可以實(shí)現(xiàn)?

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-07-19 09:57 |只看該作者
  1. awk 'NR>1&&i!=$1{for(j=0;j++<asorti(a,b);)print i,b[j];delete a}{i=$1;a[$2]}' file <(echo)
復(fù)制代碼

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
3 [報(bào)告]
發(fā)表于 2013-07-19 10:34 |只看該作者
這樣可以嗎?
  1. $ sort  -k 1r,1 -k 2n urfile
  2. Ph_scaffold57_2 1826520
  3. Ph_scaffold57_2 6002125
  4. Ph_scaffold4    15513112
  5. Ph_scaffold4    51550443
  6. Ph_scaffold4    53507591
  7. Ph_scaffold4    54818110
  8. Ph_scaffold243  767655
復(fù)制代碼

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-07-19 10:44 |只看該作者
回復(fù) 3# blackold


   


問題再次延伸考慮:
  1. cat study
  2. Ph_scaffold57_2  S1     25
  3. Ph_scaffold57_2  S2     21
  4. Ph_scaffold57_2  S1     18
  5. Ph_scaffold4   S1        54
  6. Ph_scaffold4   S2        91
  7. Ph_scaffold4   S1        43
  8. Ph_scaffold4   S2        15
  9. Ph_scaffold243 S1        55
  10. Ph_scaffold243 S3        15
  11. Ph_scaffold243 S1        35
  12. Ph_scaffold243 S3        75
復(fù)制代碼
如果第一列相同,則看第二列,如第二列也相同,則將第三列相加。貌似利用awk的數(shù)組求和比較方便。
期望結(jié)果如下:
  1. Ph_scaffold57_2  S1        43
  2. Ph_scaffold57_2  S2            21
  3. Ph_scaffold4   S1        97
  4. Ph_scaffold4   S2        106
  5. Ph_scaffold243        S1        90
  6. Ph_scaffold243        S3        90
復(fù)制代碼

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
5 [報(bào)告]
發(fā)表于 2013-07-19 10:49 |只看該作者
回復(fù) 4# 秋天的絮兒


    你想要的就是排序算法啊。
用4.0 以下版本的awk,只能進(jìn)行字符串排序,不能進(jìn)行數(shù)值排序(除非自定義函數(shù))。
  1. $ sort -k1,1 -k 2,2 -k 3n,3 urfile
  2. Ph_scaffold243 S1        35
  3. Ph_scaffold243 S1        55
  4. Ph_scaffold243 S3        15
  5. Ph_scaffold243 S3        75
  6. Ph_scaffold4   S1        43
  7. Ph_scaffold4   S1        54
  8. Ph_scaffold4   S2        15
  9. Ph_scaffold4   S2        91
  10. Ph_scaffold57_2  S1     18
  11. Ph_scaffold57_2  S1     25
  12. Ph_scaffold57_2  S2     21
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2013-07-19 10:51 |只看該作者
  1. sort -n -k 2 -t " " fielname
復(fù)制代碼

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-07-19 10:52 |只看該作者
回復(fù) 5# blackold


    難怪。那有其他的方法嗎?

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
8 [報(bào)告]
發(fā)表于 2013-07-19 10:53 |只看該作者
回復(fù) 7# 秋天的絮兒


    sort? shell? perl? python?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2013-07-19 10:56 |只看該作者
回復(fù) 8# blackold


    sort  or shell

論壇徽章:
3
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亞洲杯之阿曼
日期:2015-04-07 20:00:59
10 [報(bào)告]
發(fā)表于 2013-07-19 10:57 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP