0
我有一個包含很多JSON項,像這樣一個巨大的文本文件:排序非常大的量JSON項使用命令行
{"name":"Bob","id":1,"gender":"<gender>","height":186}
{"name":"Alice","id":4,"gender":"<gender>","height":176}
{"name":"Bill","id":3,"gender":"<gender>","height":181}
{"name":"Cathy","id":2,"gender":"<gender>","height":172}
我想這些排序由他們的「ID」值。這些文件太大而不適合內存,所以腳本語言似乎不是一種選擇。有什麼辦法可以使用linux命令行來解決這個問題嗎?我想獲得以下輸出:
{"name":"Bob","id":1,"gender":"<gender>","height":186}
{"name":"Cathy","id":2,"gender":"<gender>","height":172}
{"name":"Bill","id":3,"gender":"<gender>","height":181}
{"name":"Alice","id":4,"gender":"<gender>","height":176}
我一直在尋找到使用sort
作爲,似乎非常適合處理非常大的文件。但是,我發現很難指示它使用id值。
編輯你Q顯示你最好的猜測「使用'sort'」。你應該可以使用'sort -t'這樣的東西:「-k4,4 file'(這很醜陋,可能會被證明是脆弱的)。祝你好運。 – shellter
'sort --field-separator =:--key = 3.1 file'作品 –
其他評論和答案解釋瞭如何使用'sort'命令,這是一個很好的方法,*如果id字段總是相同在線上的位置。 (就json而言,當然並不是必須的)。你可以通過運行'cut -d,-f 2 file | grep -v'^「id」:''。這將打印第二個逗號分隔的字段不是id的所有行。如果該命令的輸出爲空,那麼'sort'方法是有效的,並且會產生正確的結果。 –