簡體   English   中英

bash:對第一列相同的文件輸出不同的排序

[英]bash: different sort output on files with identical first column

抱歉,標題含糊不清,我想不出更好的...

我有2個制表符分隔的文件 ,這些文件的第一列相同(總列數不同)。 我想按它們的第一列對這兩個文件進行排序

我想我可以使用-t \\ t選項或-k1,12選項來執行此操作(因為第一列的長度不得超過12個字符。)這兩個選項都會產生相同的(錯誤的)輸出。

即使兩個文件的第一列相同,它們的排序方式也不同。 注意在file1上我得到23,29,2; file2,我得到2,23,29。

$ head  file1 | sort -t\t | cut -f1
rs1000000
rs10000010
rs10000012
rs10000013
rs10000017
rs10000023
rs10000029
rs1000002
rs10000030

$ head file2 | sort -t\t | cut -f1
rs1000000
rs10000010
rs10000012
rs10000013
rs10000017
rs1000002
rs10000023
rs10000029
rs10000030

如何對兩個文件進行排序,以使第一列的順序相同? 謝謝!

sort -t $'\t' -k 1,1

使用$'\\t'使外殼程序將\\t解釋為選項卡,因為sort不會解析轉義序列。 使用-k告訴它僅在第一個字段而不是整個行上排序。

如果希望2010之間排序,則還可能需要-V標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM