亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用Unix排序對多個鍵進行排序

使用Unix排序對多個鍵進行排序

精慕HU 2019-11-06 10:51:57
我有可能需要按1-n鍵排序的大文件。其中一些鍵可能是數字鍵,有些則可能不是數字鍵。這是一個固定寬度的柱狀文件,因此沒有定界符。有沒有一種很好的方法可以用Unix排序呢?使用一個鍵,就像使用“ -n”一樣簡單。我已經閱讀了手冊頁并簡短地搜索了Google,但是沒有找到一個很好的例子。我將如何實現這一目標?注意:由于文件大小可能,我排除了Perl。這將是不得已的辦法。
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

使用-k選項(或--key=POS1[,POS2])。它可以出現多次,并且每個鍵可以具有全局選項(例如n用于數字排序)


查看完整回答
反對 回復 2019-11-06
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

不過請注意:


如果要主要按字段3排序文件,其次要按字段2排序,則不要這樣:


sort -k 3 -k 2 < inputfile

您想要這個:


sort -k 3,3 -k 2,2 < inputfile

第一個按從字段3的開始到行尾的字符串對文件排序(可能是唯一的)。


-k, --key=POS1[,POS2]     start a key at POS1 (origin 1), end it at POS2

                          (default end of line)


查看完整回答
反對 回復 2019-11-06
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

-k選項就是您想要的。


-k 1.4,1.5n -k 1.14,1.15n

將在第一個字段中使用字符位置4-5(固定寬度都是一個字段),并將其作為第一個鍵進行數字排序。


第二個鍵也是第一個字段中的字符14-15。


(編輯)


示例(我所擁有的都是DOS / cygwin方便的):


dir | \cygwin\bin\sort.exe -k 1.4,1.5n -k 1.40,1.60r

對于數據:


12/10/2008  01:10 PM         1,564,990 outfile.txt

按數字對目錄列表進行排序(按月號(pos 4-5),然后按文件名(pos 40-60)反向)。由于沒有選項卡,因此所有字段都為1。


查看完整回答
反對 回復 2019-11-06
  • 3 回答
  • 0 關注
  • 565 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號