亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
排序處理文本
[打印本頁(yè)]
作者:
秋天的絮兒
時(shí)間:
2013-07-19 09:53
標(biāo)題:
排序處理文本
保持第一列的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)
[解析]
一開(kāi)始我以為是個(gè)蠻小的問(wèn)題, sort應(yīng)該就可以解決, 不就是一個(gè)排序嘛. 后來(lái)發(fā)現(xiàn)sort無(wú)法在第一列相同且不改變先后順序的情況下針對(duì)第二列排序, sort要么連第一列都排序了, 這樣就打亂了原先的自然順序.
既然原先考慮的方法不行, 就只有用awk了, 思路是分別針對(duì)每個(gè)相同的第一列進(jìn)行排序, 目的是為了不改變其自然順序, 把相同第一列的第二列的值放入數(shù)組a中, 當(dāng)發(fā)現(xiàn)第一列不相同時(shí), 就排序輸出, 清空數(shù)組a.
------------------------------------------
剛剛看zooyo版主這個(gè)貼子的時(shí)候想到有沒(méi)有其他方法可以實(shí)現(xiàn)?
作者:
秋天的絮兒
時(shí)間:
2013-07-19 09:57
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ù)制代碼
作者:
blackold
時(shí)間:
2013-07-19 10:34
這樣可以嗎?
$ sort -k 1r,1 -k 2n urfile
Ph_scaffold57_2 1826520
Ph_scaffold57_2 6002125
Ph_scaffold4 15513112
Ph_scaffold4 51550443
Ph_scaffold4 53507591
Ph_scaffold4 54818110
Ph_scaffold243 767655
復(fù)制代碼
作者:
秋天的絮兒
時(shí)間:
2013-07-19 10:44
回復(fù)
3#
blackold
問(wèn)題再次延伸考慮:
cat study
Ph_scaffold57_2 S1 25
Ph_scaffold57_2 S2 21
Ph_scaffold57_2 S1 18
Ph_scaffold4 S1 54
Ph_scaffold4 S2 91
Ph_scaffold4 S1 43
Ph_scaffold4 S2 15
Ph_scaffold243 S1 55
Ph_scaffold243 S3 15
Ph_scaffold243 S1 35
Ph_scaffold243 S3 75
復(fù)制代碼
如果第一列相同,則看第二列,如第二列也相同,則將第三列相加。貌似利用awk的數(shù)組求和比較方便。
期望結(jié)果如下:
Ph_scaffold57_2 S1 43
Ph_scaffold57_2 S2 21
Ph_scaffold4 S1 97
Ph_scaffold4 S2 106
Ph_scaffold243 S1 90
Ph_scaffold243 S3 90
復(fù)制代碼
作者:
blackold
時(shí)間:
2013-07-19 10:49
回復(fù)
4#
秋天的絮兒
你想要的就是排序算法啊。
用4.0 以下版本的awk,只能進(jìn)行字符串排序,不能進(jìn)行數(shù)值排序(除非自定義函數(shù))。
$ sort -k1,1 -k 2,2 -k 3n,3 urfile
Ph_scaffold243 S1 35
Ph_scaffold243 S1 55
Ph_scaffold243 S3 15
Ph_scaffold243 S3 75
Ph_scaffold4 S1 43
Ph_scaffold4 S1 54
Ph_scaffold4 S2 15
Ph_scaffold4 S2 91
Ph_scaffold57_2 S1 18
Ph_scaffold57_2 S1 25
Ph_scaffold57_2 S2 21
復(fù)制代碼
作者:
culhw
時(shí)間:
2013-07-19 10:51
sort -n -k 2 -t " " fielname
復(fù)制代碼
作者:
秋天的絮兒
時(shí)間:
2013-07-19 10:52
回復(fù)
5#
blackold
難怪。那有其他的方法嗎。
作者:
blackold
時(shí)間:
2013-07-19 10:53
回復(fù)
7#
秋天的絮兒
sort? shell? perl? python?
作者:
秋天的絮兒
時(shí)間:
2013-07-19 10:56
回復(fù)
8#
blackold
sort or shell
作者:
zooyo
時(shí)間:
2013-07-19 10:57
提示:
作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者:
秋天的絮兒
時(shí)間:
2013-07-19 10:59
回復(fù)
10#
zooyo
最近正在學(xué)習(xí)您的博客
更好的學(xué)習(xí)
作者:
zooyo
時(shí)間:
2013-07-19 11:07
提示:
作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
作者:
culhw
時(shí)間:
2013-07-19 11:09
有沒(méi)有高人直接給sort加個(gè)參數(shù):wink:
作者:
blackold
時(shí)間:
2013-07-19 11:15
回復(fù)
4#
秋天的絮兒
$ awk '{a[$1" "$2]+=$3}END{for(i in a) print i,a[i]}' urfile|sort -k1r,1 -k 2,2 -k 3n,3
Ph_scaffold57_2 S1 43
Ph_scaffold57_2 S2 21
Ph_scaffold4 S1 97
Ph_scaffold4 S2 106
Ph_scaffold243 S1 90
Ph_scaffold243 S3 90
復(fù)制代碼
作者:
秋天的絮兒
時(shí)間:
2013-07-19 11:26
回復(fù)
14#
blackold
膜拜!
作者:
davidbeckham921
時(shí)間:
2013-07-19 15:56
黑哥關(guān)注的帖子含金量一定不低!~~學(xué)習(xí)zooyo!
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2