我有一个包含大量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}
我想通过他们的&#34; id&#34;值。这些文件太大,无法容纳在内存中,因此脚本语言似乎不是一个选项。有什么方法可以利用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值。
答案 0 :(得分:2)
您可以使用:
sort --numeric-sort --field-separator=: --key=3 --temporary-directory=somedir file
如果流程所需的数据不适合内存,
然后,排序使用somedir
(而不是 $ TMPDIR 或 / tmp )。