[英]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
告訴它僅在第一個字段而不是整個行上排序。
如果希望2
在0
到10
之間排序,則還可能需要-V
標志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.