[英]bash: sorting on same values gives different orders
我有以下兩個文件:
文件1:
4 rs10000009 0 71048953 G A
4 rs10000010 0 21618674 C T
4 rs10000011 0 138223055 T C
2 rs1000001 0 50711642 T G
4 rs10000005 0 85161558 G A
12 rs1000000 0 126890980 A G
4 rs10000003 0 57561647 A G
4 rs10000006 0 108826383 C T
4 rs10000007 0 114553253 C A
4 rs10000008 0 172776204 T C
文件2:
4 rs10000007 C A 0.006562 762
4 rs10000008 T C 0.01575 762
4 rs10000009 G A 0 762
12 rs1000000 A G 0.2388 762
4 rs10000010 C T 0.4921 762
4 rs10000003 A G 0.2992 762
4 rs10000005 G A 0.4409 762
4 rs10000012 G C 0.1417 762
4 rs10000006 C T 0.02625 762
4 rs10000011 T C 0.03675 762
我使用sort根據第2列對這些文件進行排序,第2列包含兩個文件的相同值。
sort -f -k 2 file1 > file1.sorted
sort -f -k 2 file2 > file2.sorted
但是,我得到了兩個不同排序的文件:
file1.sorted:
12 rs1000000 0 126890980 A G
4 rs10000003 0 57561647 A G
4 rs10000005 0 85161558 G A
4 rs10000006 0 108826383 C T
4 rs10000007 0 114553253 C A
4 rs10000008 0 172776204 T C
4 rs10000009 0 71048953 G A
4 rs10000010 0 21618674 C T
2 rs1000001 0 50711642 T G
4 rs10000011 0 138223055 T C
file2.sorted:
4 rs10000003 A G 0.2992 762
4 rs10000005 G A 0.4409 762
4 rs10000006 C T 0.02625 762
4 rs10000007 C A 0.006562 762
4 rs10000008 T C 0.01575 762
4 rs10000009 G A 0 762
12 rs1000000 A G 0.2388 762
4 rs10000010 C T 0.4921 762
4 rs10000011 T C 0.03675 762
4 rs10000012 G C 0.1417 762
我在這里想念什么? 如何使這兩個文件以相同方式排序? 哪種方式對我來說都沒關系,只要可以使用join來連接兩個文件即可。 非常感謝!
使用-k 2,2
僅基於第二列進行排序。 -k 2
表示從第二列開始排序
$ sort -f -k 2,2 file2
12 rs1000000 A G 0.2388 762
4 rs10000003 A G 0.2992 762
4 rs10000005 G A 0.4409 762
4 rs10000006 C T 0.02625 762
4 rs10000007 C A 0.006562 762
4 rs10000008 T C 0.01575 762
4 rs10000009 G A 0 762
4 rs10000010 C T 0.4921 762
4 rs10000011 T C 0.03675 762
4 rs10000012 G C 0.1417 762
使用-b
選項忽略前導空格 ,例如: sort -bf -k 2,2 file2
進一步閱讀: 根據第三列進行排序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.